معرفی
ممکن است تعجب کنید که چگونه برنامه های اندرویدی شما با سایر برنامه ها یا یکدیگر ادغام می شوند. آنها چگونه با خود ارتباط برقرار می کنند و خود را ادغام می کنند؟
هر زمان که یک هدف در حال ساخت است، هدف اصلی آن انجام یک اقدام در برابر فعالیت فعلی یا فعالیت دیگری است، خواه این قصد در فعالیت فعلی ایجاد شده باشد. کتابخانه Android چندین عملکرد مانند ACTION_SEND را تعریف می کند. این نشان می دهد که راه اندازی عمل ارسال به معنای ارسال چیزی از یک فعالیت به فعالیت دیگر است. این نه تنها فعالیت یک برنامه را محدود میکند، بلکه میتواند یک عمل را به برنامه دیگر، به عبارت دیگر در بین برنامهها، راهاندازی کند.
هنگام ارسال داده ها به برنامه دیگری، باید نوع داده و سایر جنبه های مرتبط با آن را مشخص کنیم. اگر چندین گزینه برای نمایش داده های ارسال شده توسط سایر فعالیت ها وجود داشته باشد، سیستم فعالیت سازگار را قفل می کند و نتیجه برگردانده شده و به کاربر نشان داده می شود. ارسال و دریافت داده ها در بین برنامه های کاربردی با هدف، رایج ترین راه برای استفاده از اشتراک گذاری اجتماعی محتوا است.
![تصویر به اشتراک گذاری داده](https://n7b3p4s2.stackpathcdn.com/UploadFile/0e8478/sharing-simple-data-between-applications/Images/datasaving.jpg)
توجه: بهترین راه برای افزودن یک آیتم اقدام به اشتراک گذاری به ActionBar استفاده از sharedActionProvider است که با سطح API 14 در دسترس است.
ارسال محتوای متنی
بیشترین و بسیار رایج ترین استفاده از عملکرد ACTION_SEND ارسال محتوای متنی از یک فعالیت به فعالیت دیگر است. این روش به طور گسترده در هنگام توسعه برنامه هایی که داده ها را به اشتراک می گذارند استفاده می شود.
- Intent sendIntent = new Intent();
- sendIntent.setAction(Intent.ACTION_SEND);
- sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send.");
- sendIntent.setType("text/plain");
- startActivity(sendIntent);
کد قبلی نمونه ای از این نوع اشتراک گذاری است، اما فقط برای اهداف تصویری است. با این حال هیچ خروجی تولید نمی کند. یک برنامه نصب شده با فیلتری وجود دارد که ACTION_SEND و نوع MIME و متن را میبندد.
سیستم اندروید پس از انجام این کار آن را اجرا خواهد کرد. اگر بیش از یک برنامه مطابقت داشته باشد، سیستم یک گفتگوی ابهامزدایی و یک انتخابگر را نمایش میدهد که به کاربر اجازه میدهد یک برنامه را انتخاب کند.
اجازه دهید مثالی بزنیم اگر Intent.createchooser() را فراخوانی کنیم، اگر نوع بازگشت شیء Intent شما انتخابگر باشد که دارای مزایایی به شرح زیر است:
- حتی اگر کاربر قبلاً یک عمل پیش فرض را برای این هدف انتخاب کرده باشد، انتخابگر همچنان نمایش داده می شود.
- اگر هیچ برنامه ای مطابقت نداشته باشد، Android یک پیام سیستمی را نمایش می دهد.
- می توانید عنوانی را برای گفتگوی انتخابگر مشخص کنید.
اجازه دهید برخی از کدها را مطابق زیر تجزیه و تحلیل کنیم:
- Intent sendIntent = new Intent();
- sendIntent.setAction(Intent.ACTION_SEND);
- sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send.");
- sendIntent.setType("text/plain");
- startActivity(Intent.createChooser(sendIntent, getResources().getText(R.string.send_to)));