طرح افراد و مکالمهها یک طرح چندساله Android است که هدف آن ارتقای افراد و مکالمهها در سطوح سیستم تلفن است. این اولویت براساس این واقعیت است که ارتباط و تعامل با افراد دیگر همچنان ارزشمندترین و مهمترین حوزه عملکردی برای اکثر کاربران ما در همه جمعیتشناسیها است.
تعدادی از ویژگیها در Android 11 برای پشتیبانی از ابتکار افراد و مکالمهها معرفی شدند.
فضای مکالمه
در دستگاههای دستی، بخش جداگانهای در بالای کشوی اعلانات وجود دارد که فقط حاوی مکالمههای همزمان با افراد است (مثل تماسها و پیامهای گپ، ازجمله گپهای گروهی). اعلانها در این فضا در بسیاری از تلفنها ظاهر و عملکرد متفاوتی نسبتبه اعلانهای غیرمکالمهای دارند:
- طراحی متفاوت است و تأکید زیادی بر چهرک نشاندهنده افراد در ترکیب با برنامهای که مکالمه را انجام میدهد دارد.
- با تکضرب زدن روی اعلان، مکالمه در برنامه (یا حباب، اگر مکالمه قبلاً بهصورت حباب بوده است) باز میشود، و با تکضرب زدن روی علامت درج، پیامهای جدید در سایه بهطور کامل با فهرست کامل گزینهها ازهم باز میشود.
- کنشهای مختص مکالمه ارائه میشود (برخی با فشار طولانی):
- علامتگذاری این مکالمه بهعنوان اولویتدار
- این مکالمه را به حبابک ارتقا دهید (فقط درصورتی نشان داده میشود که برنامه از حبابک پشتیبانی کند)
- ساکت کردن اعلانهای این مکالمه
- تنظیم صدا یا لرزش سفارشی برای این مکالمه
مکالمهها در حبابکها
از Android نسخه ۱۱ به بعد، حبابها را میتوان از اعلانها در بخش «مکالمهها» شروع کرد. فقط اعلانهایی که میانبر مرتبط دارند میتوانند در حبابک نشان داده شوند. مکالمهها بهطور خودکار حباب میشوند اگر بهعنوان مهم علامتگذاری شده باشند یا در سایه اعلان برای حباب شدن راهاندازی شده باشند.
میانبرهای مکالمه
میانبرهای مکالمهها در راهانداز و درکنار میانبرهای همرسانی طولانیمدت در برگه همرسانی نشان داده میشود.
رهنمودهای میانای برنامهسازی کاربردی
این بخش میاناهای برنامهسازی کاربردی را برای افزودن پشتیبانی در برنامهتان برای فضای ارائهشده توسط سیستم که افراد و مکالمهها را نشان میدهد شرح میدهد.
میانبرهای «مکالمهها»
برای شرکت در این طرح مکالمهمحور، برنامهها باید میانبرهای طولانیمدت به سیستم ارائه دهند. اکیداً توصیه میکنیم از میانبرهای همرسانی با عمر طولانی استفاده کنید. درصورت لزوم، میتوانید از میانبرهای پویا در Android 11 استفاده کنید، اما ممکن است این گزینه را در آینده برداریم.
برای انتشار میانبر در مکالمه، روشهای ShortcutManagerCompat setDynamicShortcuts()، addDynamicShortcuts()، یا pushDynamicShortcut() را فراخوانی کنید (که بهطور خودکار محدودیت میانبر را برای توسعهدهنده مدیریت میکند). این میانبر باید
طولانیمدت
باشد و دادههای Person
پیوستشده برای یک یا چند نفر داشته باشد که دیگر شرکتکنندگان در مکالمه را شناسایی کند. همچنین توصیه میکنیم LocusIdCompat را تنظیم کنید.
اگر مکالمهای دیگر وجود نداشته باشد، برنامه میتواند میانبر را با
removeLongLivedShortcuts() حذف کند؛
با این کار، سیستم همه دادههای مرتبط با مکالمه را حذف میکند.
اگرچه میانبرها قابلحذف هستند، برنامهها نباید میانبرهای ذخیرهشده در حافظه نهان را حذف کنند
مگر اینکه کاملاً ضروری باشد؛ میانبر احتمالاً به این دلیل در حافظه نهان ذخیره شده است که کاربر
با آن تعامل داشته تا تجربهاش را تغییر دهد، و حذف میانبر
آن تغییرات را واگرد میکند و منجر به نارضایتی کاربر میشود.
اعلانهای مکالمه
اگر موارد زیر درست باشد، اعلان بهعنوان اعلان مکالمه درنظر گرفته میشود:
اعلان از
MessagingStyleاستفاده میکند.(فقط اگر برنامه Android 11 یا بالاتر را هدفیابی کند) اعلان با میانبر همرسانی پویای طولانیمدت یا ذخیرهشده در حافظه نهان معتبری مرتبط است. اعلان میتواند این ارتباط را با فراخوانی
setShortcutId()یاsetShortcutInfo()تنظیم کند. اگر برنامه Android 10 یا پایینتر را هدف قرار دهد، اعلان لازم نیست با میانبر مرتبط باشد، همانطور که در بخش گزینههای بازگشت توضیح داده شده است.کاربر مکالمه را از بخش مکالمه ازطریق تنظیمات کانال اعلان در زمان پست کردن تنزل نداده است.
استفاده از LocusIdCompat
هوش دروندستگاهی مکالمههایی را که احتمالاً کاربر بیشتر به آنها علاقه دارد تعیین میکند. ازجمله مهمترین نشانها، تازگی و
تعداد جلسههای مکالمه در هر مکالمه است. سیستم از تعاملات با مکالمه ازطریق میانبرهای «راهانداز» یا درون اعلان مطلع میشود، بهشرطی که بهدرستی برچسبگذاری شده باشند. بااینحال، سیستم از مکالمههایی که کاملاً در برنامه اتفاق افتادهاند مطلع نمیشود، مگراینکه آن تعاملها نیز برچسبگذاری شده باشند. بنابراین، اکیداً توصیه میکنیم که LocusIdCompat را به میانبر پیوست کنید و فعالیت یا قطعه درونبرنامه را با LocusIdCompat مربوطه حاشیهنویسی کنید. از LocusIdCompat استفاده کنید تا سیستم پیشنهاد بتواند مکالمه را بهدرستی رتبهبندی کند و سیستم بتواند زمان صحیح آخرین تعامل کاربر (ازجمله تعاملات درونبرنامه) با مکالمه را نمایش دهد. اگر از
setShortcutInfo()
برای مرتبط کردن مکالمه با میانبر استفاده کنید، سیستم مکالمهها
بهطور خودکار LocusIdCompat مناسب را پیوست میکند.
الزامات فضای مکالمه برای برنامههایی که Android نسخه ۱۰ یا پایینتر را هدف قرار میدهند
اگر برنامهای Android 11 را هدف قرار ندهد، پیامهای آن همچنان میتواند در فضای مکالمه نشان داده شود. بااینحال، برنامه همچنان باید شرایط خاصی را برآورده کند. این بخش الزامات این برنامهها و رفتار جایگزین را درصورتیکه برنامه الزامات را برآورده نکند شرح میدهد.
شرط اصلی برای مشارکت در فضای پیامرسانی این است که برنامه باید
MessagingStyle
اعلانها را پیادهسازی کند و اعلانها باید به
میانبر طولانیمدت از اعلانی که در زمان پست شدن اعلان منتشر میشود ارجاع دهند. اعلانهایی که این الزامات را برآورده میکنند
با این رفتار در فضای مکالمه نشان داده میشوند:
- اعلان در سبک مکالمه نمایش داده میشود
- دکمه حباب درصورت پیادهسازی ارائه میشود
- عملکردهای مختص مکالمه بهصورت درونخطی ارائه میشوند
اگر اعلان این الزامات را برآورده نکند، پلتفرم از گزینههای جایگزین برای قالببندی اعلان استفاده میکند. اگر اعلانی الزامات هریک از موارد بازگشت را برآورده کند، اعلان با قالببندی خاصی در فضای مکالمه نمایش داده میشود. اگر اعلان برای هیچکدام از گزینههای جایگزین واجدشرایط نباشد، در فضای مکالمه نمایش داده نمیشود.
جایگزین: اگر از MessagingStyle استفاده شود اما میانبری ارائه نشده باشد
اگر برنامه Android 10 یا پایینتر را هدف قرار دهد و اعلانی از
MessagingStyle
استفاده کند اما پیام را با میانبر مرتبط نکند، اعلان
در فضای مکالمه با این رفتار نشان داده میشود:
- اعلان در سبک مکالمه نمایش داده میشود
- دکمه حبابک ارائه نشده است
- هیچ عملکرد مختص مکالمهای بهصورت درونخطی ارائه نمیشود
جایگزین: اگر از MessagingStyle استفاده نشود، اما برنامه بهعنوان برنامه پیامرسانی شناخته شود
اگر اعلانی از
MessagingStyle
استفاده نکند
اما پلاتفرم برنامه را بهعنوان برنامه پیامرسانی تشخیص دهد و پارامتر
category
اعلان روی
msg
تنظیم شده باشد،
اعلان در فضای مکالمه با این رفتار نشان داده میشود:
- اعلان به سبک قدیمی، قبلاز Android 11 نمایش داده میشود
- دکمه حبابک ارائه نشده است
- هیچ عملکرد مختص مکالمهای بهصورت درونخطی ارائه نمیشود
راهنمایی، استفاده، و آزمایش
این بخش راهنمایی کلی درباره نحوه استفاده و آزمایش ویژگیهای مکالمه ارائه میدهد.
چه زمانی باید از مکالمهها استفاده کنم؟
هدف از «اعلانهای مکالمه» و میانبرهای مرتبط، بهبود تجربه کاربری مکالمههای همزمان است. برای مثال، پیامک، گپ نوشتاری، و تماس تلفنی مکالمههای همزمان هستند که کاربران انتظار دارند بهسرعت ارتباط برقرار کنند. کاربران چنین انتظاری از ایمیلها و فعالیتهای غیرمرتبط با مکالمهها ندارند.
به کاربران این امکان را دادهایم که اگر احساس میکنند مکالمهای در فضای مناسبی قرار ندارد، آن را از بخش مکالمه بردارند.
روالهای مطلوب
برای افزایش تعامل و آسانتر کردن تعامل کاربران با افراد و مکالمههای پیرامون برنامهتان، روالهای مطلوب زیر را توصیه میکنیم.
- برای اطمینان از اینکه تماسهای بیپاسخ در بخش مکالمه اولویتبندیشده نشان داده میشود و بهدرستی در ابزاره مکالمه ظاهر میشود، اعلانهای تماس بیپاسخ را بهصورت
conversationsقالببندی کنید و دسته را رویCATEGORY_MISSED_CALLتنظیم کنید. - چهرکهای باکیفیت (۱۰۴dp) برای کاربران ارائه دهید؛ درغیراینصورت، سیستم از حروف اول نام شخص استفاده میکند که تجربه جذابیت کمتری دارد.
- تا زمانی که کاربر پیام را ندیده است، اعلان مکالمه را
cancelنکنید. یک نمونه از این مورد، لغو اعلان هنگام باز کردن برنامه در نمایی است که کاربر نمیتواند پیام را ببیند یا به آن رسیدگی کند. اگر به کاربر فرصت خواندن یا رسیدگی به پیام داده نشود، اعلان لغوشده و حبابک مرتبط با آن برداشته میشود و درنتیجه بافت مکالمه ازدست میرود. - یک
dataURI برای فرادادههای مرتبط با MIME منسوب به پیامها ارائه دهید که به شما گزینه ارائه تجربه غنیتر در اعلانها را میدهد. - از
Android 12 statusAPI برای جذابتر کردن ابزارههای مکالمه استفاده کنید. - روالهای مطلوب زیر را برای
میانبرهای مکالمه اتخاذ کنید.
- میانبرهایی برای مکالمههای درونبرنامه ورودی و خروجی منتشر میکند که
اعلان لحظهای ارسال نمیکنند. پیامهای ورودی و خروجی برای یک مکالمه باید شناسه میانبر یکسانی داشته باشند. از
pushDynamicShortcut()برای انتشار میانبرها و گزارش استفاده استفاده کنید. - برای جلوگیری از برش ناخواسته چهرک میانبر،
AdaptiveIconDrawableبرای نماد میانبر ارائه دهید. برای جزئیات بیشتر، ارائه تصاویر میانبر را ببینید. - برای کمک به سیستم در تبلیغ میانبرتان، دستورالعملهای دریافت بهترین رتبهبندی را دنبال کنید. میانبر شما در سطوح مختلف سیستم رتبهبندی میشود، ازجمله برگه همرسانی Android اگر میانبر همرسانی باشد.
- مطمئن شوید که میانبرهای مکالمه
intentsمستقیماً به مکالمه مربوطه هدایت میکنند. - از کتابخانههای سازگاری برای تنظیم راحت میانبرهایتان بهعنوان
conversationمرتبط استفاده کنید.
- میانبرهایی برای مکالمههای درونبرنامه ورودی و خروجی منتشر میکند که
اعلان لحظهای ارسال نمیکنند. پیامهای ورودی و خروجی برای یک مکالمه باید شناسه میانبر یکسانی داشته باشند. از
درحال آزمایش «اعلانهای مکالمه» و میانبرها
اگر از رهنمودهای فضای مکالمه پیروی کنید، مکالمهها باید بهطور خودکار در فضای مکالمه نشان داده شوند. با فشار طولانی روی اعلان میتوانید درستیسنجی کنید که میانبر بهدرستی ادغام شده است یا نه. اگر ادغام بهدرستی انجام شده باشد، میانای کاربر کنشهای مربوط به مکالمه را نشان میدهد. اگر اعلان به میانبری پیوند داده نشده باشد، رابط کاربری نوشتاری را نشان میدهد که بیان میکند برنامه از ویژگیهای مکالمه پشتیبانی نمیکند.
میانبرهای اضافهشده با فشار طولانی روی راهانداز برنامه نمایش داده میشوند. حتماً آزمایش کنید که میانبرها شما را به مکان صحیح در برنامهتان هدایت میکنند.
میانبرهای همرسانی اضافهشده در ردیف همرسانی مستقیم برگه همرسانی نشان داده میشوند، وقتی محتوایی را همرسانی میکنید که میانبر همرسانی شما میتواند دریافت کند.
ابزارههای مکالمه
در Android 12، ویژگی «ابزاره مکالمه» براساس ویژگی افراد و مکالمهها که در Android 11 معرفی شد ساخته شده است و به برنامهها اجازه میدهد وضعیت مکالمه را در «ابزارههای مکالمه» نمایش دهند.
ابزارههای مکالمه با فراهم کردن امکان باز کردن آسان گپها در صفحه اصلی، تعامل کاربر را ارتقا میدهند. این ابزارهها میانبرهای بهبودیافتهای هستند که به کاربران اجازه میدهند بهطور مؤثر به مکالمههایشان برگردند و درعینحال، گزیدههایی از وضعیت مکالمه یا اطلاعات مرتبط دیگر را نشان میدهند.
تأیید کنید که برنامهتان از ابزارههای مکالمه پشتیبانی میکند
برای تأیید اینکه برنامهتان از ابزارههای مکالمه پشتیبانی میکند، باید حداقل دو دستگاه Android (هر دو با Android 12) و دو حساب کاربری (یکی در هر دستگاه) برای تبادل پیام داشته باشید. برای اهداف این رویه، حسابها را «کاربر الف» و «کاربر ب» مینامیم.
مراحل زیر را تکمیل کنید:
- در دستگاه کاربر الف، روی راهانداز طولانی فشار دهید. در انتخابگر ابزاره، روی ابزاره جدیدی برای مکالمه تکضرب بزنید (همانطور که در شکل ۲ نشان داده شده است).
- ابزاره را به صفحه اصلی بکشید. فهرستی از مکالمههای فعال یا اخیر از برنامه کاربر الف باید قابلانتخاب باشد.
- اکنون، در دستگاه کاربر «ب»، پیام آزمایشی به کاربر «الف» ارسال کنید.
- در دستگاه کاربر الف، بررسی کنید که ابزاره بهروز شده باشد تا اعلان پیام کاربر ب را نشان دهد.
- اختیاری: از کاربر الف و کاربر ب بخواهید مکالمه را روی مقادیر وضعیت متفاوتی تنظیم کنند تا مطمئن شوید ابزارههایشان بهدرستی آنها را منعکس میکنند. برای مشاهده فهرست مقادیر وضعیت، ConversationStatus را ببینید.