ابتکار افراد و گفتگوها یک ابتکار چند ساله اندرویدی است که هدف آن ارتقای افراد و مکالمات در سطوح سیستم تلفن است. این اولویت بر این واقعیت استوار است که ارتباط و تعامل با افراد دیگر همچنان ارزشمندترین و مهمترین حوزه عملکردی برای اکثر کاربران ما در همه گروههای جمعیتی است.
تعدادی ویژگی در اندروید 11 برای پشتیبانی از ابتکار عمل افراد و مکالمات معرفی شده است.
در دستگاههای دستی، بخش جداگانهای در بالای قسمت اعلانها وجود دارد که فقط حاوی مکالمات همزمان با افراد است (مانند تماسها و پیامهای چت، از جمله چتهای گروهی). اعلانها در این فضا متفاوت از اعلانهای بدون مکالمه در بسیاری از تلفنها به نظر میرسند و عمل میکنند:
- طراحی متفاوت است، با تاکید زیادی بر آواتار نشان دهنده افراد همراه با برنامه ای که مکالمه را حمل می کند.
- یک ضربه روی اعلان، مکالمه را در برنامه باز می کند (یا حباب ، اگر مکالمه قبلاً حباب زده شده بود)، و ضربه زدن بر روی جعبه، پیام های جدید در سایه را به طول کامل با لیست کامل گزینه ها گسترش می دهد.
- کنشهای خاص مکالمه ارائه میشوند (برخی با فشار دادن طولانی):
- این گفتگو را به عنوان اولویت علامت گذاری کنید
- تبلیغ این مکالمه به حباب (فقط در صورتی نشان داده می شود که برنامه از حباب ها پشتیبانی کند)
- بیصدا کردن اعلانها برای این مکالمه
- صداها یا لرزش های سفارشی را برای این مکالمه تنظیم کنید
از اندروید 11، حبابها را میتوان از اعلانها در بخش مکالمات شروع کرد. فقط اعلانهای دارای میانبر مرتبط میتوانند حباب شوند. اگر مکالمات بهعنوان مهم علامتگذاری شوند یا در قسمت اعلان حباب شوند، بهطور خودکار حباب میشوند.
میانبرهای مکالمات در راهانداز و در کنار میانبرهای اشتراکگذاری طولانی مدت در برگه اشتراکگذاری ظاهر میشوند.
این بخش APIهایی را برای افزودن پشتیبانی به برنامه شما برای فضای ارائه شده توسط سیستم که افراد و مکالمات را نشان می دهد، توضیح می دهد.
برای شرکت در این ابتکار مکالمه محور، برنامه ها باید میانبرهای طولانی مدتی را در اختیار سیستم قرار دهند. ما قویاً توصیه می کنیم از میانبرهای اشتراک گذاری طولانی مدت استفاده کنید. در صورت لزوم می توانید از میانبرهای پویا در اندروید 11 استفاده کنید، اما ممکن است در آینده این گزینه را حذف کنیم.
برای انتشار میانبر به مکالمه، متدهای ShortcutManagerCompat
setDynamicShortcuts()
، addDynamicShortcuts()
یا pushDynamicShortcut()
(که به طور خودکار محدودیت میانبر را برای توسعه دهنده مدیریت می کند) فراخوانی کنید. این میانبر باید عمر طولانی داشته باشد و دادههای Person
برای یک یا چند نفر ضمیمه شده باشد و سایر شرکتکنندگان در مکالمه را شناسایی کند. همچنین توصیه می کنیم LocusIdCompat
را تنظیم کنید.
اگر مکالمه ای دیگر وجود نداشته باشد، برنامه می تواند میانبر را با removeLongLivedShortcuts()
حذف کند. انجام این کار باعث می شود سیستم تمام داده های مرتبط با مکالمه را حذف کند. اگرچه میانبرها قابل جابجایی هستند، برنامه ها نباید میانبرهای کش شده را حذف کنند مگر اینکه کاملاً ضروری باشد. یک میانبر احتمالاً کش است زیرا کاربر برای تغییر تجربه خود با آن تعامل داشته است و حذف میانبر آن تغییرات را خنثی می کند و منجر به ناامیدی کاربر می شود.
اگر موارد زیر درست باشد، یک اعلان به عنوان یک اعلان مکالمه در نظر گرفته می شود:
اعلان از
MessagingStyle
استفاده می کند.(فقط در صورتی که برنامه اندروید 11 یا بالاتر را هدف قرار دهد) اعلان با یک میانبر اشتراک گذاری پویا یا ذخیره شده در حافظه پنهان طولانی مدت همراه است. اعلان می تواند این ارتباط را با فراخوانی
setShortcutId()
یاsetShortcutInfo()
تنظیم کند. اگر برنامه اندروید 10 یا پایینتر را هدف قرار میدهد، همانطور که در بخش گزینههای بازگشتی توضیح داده شد، اعلان لازم نیست با یک میانبر مرتبط باشد.کاربر در زمان پست کردن، مکالمه را از طریق تنظیمات کانال اعلان از بخش مکالمه حذف نکرده است.
هوشمندی روی دستگاه، مکالماتی را مشخص می کند که کاربر به احتمال زیاد به آنها علاقه مند است. از جمله مهم ترین سیگنال ها می توان به تازگی و فراوانی جلسات مکالمه در هر مکالمه اشاره کرد. اگر به درستی برچسب گذاری شده باشند، سیستم از تعاملات با یک مکالمه از میانبرهای Launcher یا در یک اعلان مطلع است. با این حال، سیستم از مکالماتی که به طور کامل در برنامه اتفاق افتاده است اطلاعی ندارد مگر اینکه آن تعاملات نیز برچسب گذاری شده باشند. بنابراین، ما قویاً توصیه میکنیم که LocusIdCompat
را به میانبر متصل کنید و فعالیت یا قطعه درون برنامه را با LocusIdCompat
مرتبط حاشیهنویسی کنید. از LocusIdCompat
برای فعال کردن سیستم پیشنهاد برای رتبهبندی صحیح مکالمه و فعال کردن سیستم برای نمایش زمان صحیح آخرین تعامل کاربر (از جمله تعاملات درون برنامه) با یک مکالمه استفاده کنید. اگر از setShortcutInfo()
برای مرتبط کردن مکالمه با یک میانبر استفاده می کنید، سیستم مکالمات به طور خودکار LocusIdCompat
مناسب را متصل می کند.
اگر برنامهای اندروید 11 را هدف قرار ندهد، پیامهای آن همچنان میتواند در فضای مکالمه ظاهر شود. با این حال، برنامه هنوز باید شرایط خاصی را برآورده کند. این بخش الزامات آن برنامهها و رفتار بازگشتی را در صورتی که برنامه الزامات را برآورده نمیکند، توضیح میدهد.
شرط اصلی برای مشارکت در فضای پیامرسانی این است که برنامه باید اعلانهای MessagingStyle
را اجرا کند و اعلانها باید به یک میانبر طولانی مدت از اعلانهایی که در زمان ارسال اعلان منتشر میشود اشاره کنند. اعلانهایی که این الزامات را برآورده میکنند با این رفتار در فضای مکالمه ظاهر میشوند:
- اعلان به سبک مکالمه نمایش داده می شود
- در صورت اجرا، دکمه حباب ارائه می شود
- توابع خاص مکالمه به صورت درون خطی ارائه می شود
اگر اعلان این الزامات را برآورده نکند، پلتفرم از گزینه های بازگشتی برای قالب بندی اعلان استفاده می کند. اگر یک اعلان الزامات هر یک از موارد بازگشتی را برآورده کند، اعلان در فضای مکالمه با قالب بندی خاص نمایش داده می شود. اگر اعلان برای هیچ یک از گزینه های بازگشتی واجد شرایط نباشد، در فضای مکالمه نمایش داده نمی شود.
اگر برنامه Android 10 یا پایینتر را هدف قرار میدهد و اعلان از MessagingStyle
استفاده میکند اما پیام را با میانبر مرتبط نمیکند ، اعلان در فضای مکالمه با این رفتار نشان داده میشود:
- اعلان به سبک مکالمه نمایش داده می شود
- هیچ دکمه حبابی ارائه نمی شود
- هیچ عملکرد ویژه مکالمه به صورت درون خطی ارائه نمی شود
اگر اعلانی از MessagingStyle
استفاده نمیکند اما برنامه توسط پلتفرم بهعنوان برنامه پیامرسانی شناسایی میشود و پارامتر category
اعلان روی msg
تنظیم میشود، اعلان در فضای مکالمه با این رفتار نشان داده میشود:
- اعلان به سبک قدیمی و پیش از اندروید 11 نمایش داده می شود
- هیچ دکمه حبابی ارائه نمی شود
- هیچ عملکرد ویژه مکالمه به صورت درون خطی ارائه نمی شود
این بخش راهنمایی کلی در مورد نحوه استفاده و آزمایش ویژگی های مکالمه ارائه می دهد.
اعلانهای مکالمه و میانبرهای مرتبط با هدف بهبود تجربه کاربر از مکالمات همزمان هستند. به عنوان مثال، پیامک، چت متنی، و تماس های تلفنی مکالماتی هستند که کاربران انتظار دارند سریع با هم ارتباط برقرار کنند. کاربران از ایمیل ها و فعالیت های غیرمرتبط با مکالمات چنین انتظاری ندارند.
ما به کاربران این امکان را دادهایم که اگر احساس میکنند مکالمه در فضای مناسب نیست، آن را از بخش مکالمه حذف کنند.
برای افزایش تعامل و آسانتر کردن تعامل کاربران با افراد و گفتگوهای اطراف برنامهتان، بهترین روشهای زیر را توصیه میکنیم.
- برای اطمینان از اینکه تماسهای بیپاسخ در قسمت اولویتبندیشده مکالمه ظاهر میشوند و به درستی در ویجت تبدیل ظاهر میشوند، اعلانهای تماسهای از دسترفته را بهعنوان
conversations
با دستهای رویCATEGORY_MISSED_CALL
قالببندی کنید. - ارائه آواتارهای با کیفیت بالا (104dp) برای کاربران؛ در غیر این صورت، سیستم از حروف اول شخص استفاده می کند که تجربه کمتری جذاب است.
- قبل از اینکه کاربر پیام را ندیده، اعلان مکالمه را
cancel
نکنید. یکی از نمونههای آن لغو یک اعلان هنگام باز کردن برنامه در نمایی است که کاربر نمیتواند پیام را ببیند یا آدرس دهد. اگر به کاربر فرصت خواندن یا آدرس دادن پیام داده نشود، یک اعلان لغو شده و حباب مربوط به آن حذف میشوند و در نتیجه زمینه گفتگو از بین میرود. - یک URI
data
برای ابردادههای مرتبط با MIME مرتبط با پیامها ارائه دهید، که به شما امکان ارائه تجربه غنیتری در اعلانها را میدهد. - از API
Android 12 status
برای جذابتر کردن ویجتهای مکالمه استفاده کنید. - بهترین شیوه های زیر را برای میانبرهای مکالمه به کار بگیرید.
- میانبرهایی را برای مکالمات درون برنامه ای ورودی و خروجی که اعلان ها را فشار نمی دهند منتشر کنید. پیام های ورودی و خروجی برای یک مکالمه باید دارای شناسه میانبر یکسان باشند. برای انتشار میانبرها و گزارش استفاده از
pushDynamicShortcut()
استفاده کنید. - برای جلوگیری از قطع ناخواسته آواتار میانبر خود، یک
AdaptiveIconDrawable
برای نماد میانبر ارائه دهید. برای جزئیات بیشتر به ارائه تصاویر میانبر مراجعه کنید. - برای کمک به سیستم برای ارتقای میانبر خود، دستورالعملهای کسب بهترین رتبه را دنبال کنید. میانبر شما در سطوح مختلف سیستم رتبهبندی میشود، از جمله اشتراکگذاری Android اگر میانبر اشتراکگذاری باشد.
- اطمینان حاصل کنید که
intents
میانبرهای مکالمه مستقیماً در مکالمه قابل اجرا راه اندازی می شوند. - برای تنظیم راحت میانبرهای خود به عنوان مرتبط با
conversation
از لبه های سازگار استفاده کنید.
- میانبرهایی را برای مکالمات درون برنامه ای ورودی و خروجی که اعلان ها را فشار نمی دهند منتشر کنید. پیام های ورودی و خروجی برای یک مکالمه باید دارای شناسه میانبر یکسان باشند. برای انتشار میانبرها و گزارش استفاده از
اگر از دستورالعمل های فضای مکالمه پیروی می کنید، مکالمات باید به طور خودکار در فضای مکالمه ظاهر شوند. با فشار دادن طولانی روی اعلان، می توانید تأیید کنید که میانبر به درستی یکپارچه شده است. اگر ادغام به درستی انجام شود، UI اقدامات مربوط به مکالمه را نشان می دهد. اگر اعلان به یک میانبر مرتبط نباشد، رابط کاربری متنی را نشان می دهد که نشان می دهد برنامه از ویژگی های مکالمه پشتیبانی نمی کند.
اضافه شدن میانبرها با فشار طولانی روی راهانداز برنامه. حتماً آزمایش کنید که میانبرها شما را به مکان صحیح در برنامه خود می برند.
هنگام اشتراکگذاری محتوایی که میانبر اشتراکگذاری شما میتواند دریافت کند، میانبرهای اشتراکگذاری اضافهشده در ردیف اشتراکگذاری مستقیم برگه نشان داده میشوند.
در Android 12، ویژگی Conversation Widget بر اساس ویژگی افراد و مکالمات معرفی شده در Android 11 ایجاد می شود و به برنامه ها اجازه می دهد وضعیت مکالمه را در ویجت های مکالمه نمایش دهند.
ویجت های مکالمه با اجازه دادن به آنها برای باز کردن آسان چت ها در صفحه اصلی، تعامل کاربر را تقویت می کنند. این ویجتها میانبرهای پیشرفتهای هستند که به کاربران اجازه میدهند به طور موثر به مکالمات خود بازگردند و در عین حال تکههایی از وضعیت مکالمه خود یا سایر اطلاعات مرتبط را نشان دهند.
برای تأیید اینکه برنامه شما از ویجتهای مکالمه پشتیبانی میکند، باید حداقل دو دستگاه Android (هر دو دارای Android 12) و دو حساب کاربری (یکی در هر دستگاه) برای تبادل پیام داشته باشید. برای اهداف این روش، حسابها را «کاربر A» و «کاربر B» مینامیم.
مراحل زیر را کامل کنید:
- در دستگاه کاربر A، لانچر را به مدت طولانی فشار دهید. همانطور که در شکل 2 نشان داده شده است، در انتخابگر ویجت، روی یک ویجت جدید برای مکالمه ضربه بزنید.
- ویجت را به صفحه اصلی بکشید. فهرستی از مکالمات فعال یا اخیر از برنامه کاربر A باید قابل انتخاب باشد.
- اکنون در دستگاه کاربر B، یک پیام آزمایشی برای کاربر A ارسال کنید.
- برگردید به دستگاه کاربر A، بررسی کنید که ویجت بهروزرسانی شده است تا اعلان پیام کاربر B را منعکس کند.
- اختیاری: از کاربر A و B بخواهید که مکالمه را روی مقادیر وضعیت متفاوتی تنظیم کنند تا اطمینان حاصل شود که ویجت های آنها به درستی آنها را منعکس می کنند. برای فهرستی از مقادیر وضعیت، ConversationStatus را ببینید.