اعلان‌ها در Wear OS

اعلان‌ها در ساعت‌ها از همان APIها استفاده می‌کنند و ساختار مشابهی با اعلان‌ها در تلفن‌ها دارند.

اعلان‌ها می‌توانند به دو صورت روی ساعت نمایش داده شوند:

  1. یک اپلیکیشن موبایل یک اعلان ایجاد می‌کند و سیستم به طور خودکار آن اعلان را به ساعت متصل می‌کند .
  2. یک برنامه پوشیدنی یک اعلان ایجاد می‌کند.

برای هر دو سناریو، از کلاس NotificationCompat.Builder برای ایجاد اعلان‌ها استفاده کنید. وقتی اعلان‌ها را با کلاس سازنده می‌سازید، سیستم نمایش صحیح اعلان‌ها را بر عهده می‌گیرد. برای مثال، وقتی از برنامه تلفن همراه خود اعلانی صادر می‌کنید، هر اعلان به عنوان یک کارت در جریان اعلان‌ها ظاهر می‌شود.

برای مشاهده نحوه نمایش اعلان‌ها، مثال زیر را بررسی کنید. کارت‌های اعلان

شکل ۱. اعلان یکسانی که هم روی گوشی و هم روی ساعت نمایش داده می‌شود.

برای بهترین نتیجه، از یکی از زیرکلاس‌های NotificationCompat.Style استفاده کنید.

توجه: استفاده از RemoteViews اعلان‌های مربوط به طرح‌بندی‌های سفارشی را حذف می‌کند و دستگاه پوشیدنی فقط متن و آیکون‌ها را نمایش می‌دهد.

اعلان‌های پیشنهادی برای دستگاه‌های پوشیدنی

از اعلان‌های قابل گسترش به عنوان نقطه شروع برای همه اعلان‌ها استفاده کنید، زیرا آنها راهی عالی برای جذب کاربران دستگاه‌های پوشیدنی هستند. حالت جمع شده در سینی اعلان‌ها برای یک تجربه کوتاه و قابل مشاهده نمایش داده می‌شود. اگر کاربر روی آن ضربه بزند، اعلان گسترش می‌یابد و یک تجربه همه جانبه و قابل پیمایش از محتوا و اقدامات اضافی را آشکار می‌کند.

شما می‌توانید یک اعلان قابل بسط را به همان روشی که در موبایل انجام می‌دهید، با استفاده از هر یک از زیرکلاس‌های NotificationCompat.Style ایجاد کنید. برای مثال، یک اعلان استاندارد با استفاده از NotificationCompat.MessagingStyle به شکل زیر است:اعلان قابل ارتقا

شکل ۲. نمونه‌ای از اعلان MessagingStyle در Wear OS.

می‌توانید ببینید که اعلان چندین اقدام را در پایین حالت باز شده روی هم قرار داده است.

نکته: اگر اعلان‌های شما شامل یک عمل "پاسخ" هستند، مانند یک برنامه پیام‌رسان، می‌توانید رفتار اعلان را بهبود بخشید. برای مثال، می‌توانید پاسخ‌های ورودی صوتی را مستقیماً از طریق دستگاه پوشیدنی یا پاسخ‌های متنی از پیش تعریف شده با setChoices() فعال کنید. برای اطلاعات بیشتر، افزودن دکمه پاسخ را مطالعه کنید.

جلوگیری از ارسال اعلان‌های تکراری

به طور پیش‌فرض، اعلان‌ها از یک برنامه تلفن همراه به هر ساعت جفت‌شده‌ای منتقل می‌شوند. اگر برنامه پوشیدنی نصب نکرده‌اید، این گزینه عالی است.

با این حال، اگر یک برنامه ساعت مستقل و یک برنامه تلفن همراه بسازید، برنامه‌ها اعلان‌های تکراری ایجاد می‌کنند.

Wear OS با استفاده از رابط‌های برنامه‌نویسی کاربردی پل‌سازی (Bridging APIs) راهی برای جلوگیری از اعلان‌های تکراری ارائه می‌دهد. این امر به ویژه برای برنامه‌هایی که روی دستگاه‌هایی با Wear OS 5 یا بالاتر اجرا می‌شوند، اهمیت دارد، زیرا برخی از اعلان‌هایی که در دستگاه تلفن همراه قابل رد شدن هستند، در دستگاه Wear OS قابل رد شدن نیستند. برای اطلاعات بیشتر، گزینه‌های پل‌سازی برای اعلان‌ها را مطالعه کنید.

افزودن ویژگی‌های خاص پوشیدنی به اعلان

اگر نیاز دارید ویژگی‌های خاص دستگاه‌های پوشیدنی را به یک اعلان اضافه کنید، مانند پنهان کردن آیکون برنامه از اعلان دستگاه پوشیدنی یا اجازه دادن به کاربران برای دیکته کردن پاسخ متنی با ورودی صوتی، می‌توانید از کلاس NotificationCompat.WearableExtender برای مشخص کردن گزینه‌ها استفاده کنید. برای استفاده از این API، موارد زیر را انجام دهید:

  1. یک نمونه از WearableExtender ایجاد کنید و گزینه‌های مخصوص دستگاه‌های پوشیدنی را برای اعلان تنظیم کنید.
  2. یک نمونه از NotificationCompat.Builder ایجاد کنید و ویژگی‌های مورد نظر برای اعلان خود را همانطور که قبلاً در این راهنما توضیح داده شده است، تنظیم کنید.
  3. تابع extend() را روی اعلان فراخوانی کنید و WearableExtender را به آن ارسال کنید. این کار گزینه‌های پوشیدنی را روی اعلان اعمال می‌کند.
  4. برای ساخت اعلان، تابع build() را فراخوانی کنید.

نکته: اگر از NotificationManager چارچوب استفاده می‌کنید، برخی از ویژگی‌های NotificationCompat.WearableExtender کار نمی‌کنند، بنابراین حتماً از NotificationCompat استفاده کنید.

شما می‌توانید اعلان‌های رد شده یا لغو شده را در دستگاه‌های کاربر همگام‌سازی کنید. برای همگام‌سازی یک اعلان رد شده، از متد setDismissalId() استفاده کنید. برای هر اعلان، هنگام فراخوانی setDismissalId() یک شناسه منحصر به فرد سراسری به عنوان یک رشته ارسال کنید. هنگامی که اعلان رد می‌شود، تمام اعلان‌های دیگر با همان شناسه رد شده در ساعت و تلفن همراه رد می‌شوند. برای بازیابی شناسه رد شده، getDismissalId() استفاده کنید.

اقدامات مخصوص دستگاه‌های پوشیدنی را مشخص کنید

اگر می‌خواهید اقدامات متفاوتی روی ساعت و گوشی در دسترس باشد، از WearableExtender.addAction() استفاده کنید. هنگامی که یک اقدام را با این متد اضافه می‌کنید، دستگاه پوشیدنی هیچ اقدام دیگری را که با NotificationCompat.Builder.addAction() اضافه شده است، نمایش نمی‌دهد. اقدامات اضافه شده با WearableExtender.addAction() فقط روی دستگاه پوشیدنی ظاهر می‌شوند، نه روی گوشی.

برنامه تلفن خود را از یک دستگاه پوشیدنی اجرا کنید

اگر از اعلان‌های پل‌مانند استفاده می‌کنید، هر اعلانی به‌طور خودکار شامل دکمه‌ای برای اجرای برنامه روی گوشی است. با این حال، اگر از یک اعلان محلی که روی ساعت ایجاد شده است استفاده می‌کنید، از مراحل زیر برای ایجاد دکمه‌ای که برنامه را روی گوشی اجرا می‌کند، استفاده کنید:

  1. یک Activity جدید ایجاد کنید که ConfirmationActivity بسط دهد.
  2. برای اجرای برنامه تلفن RemoteActivityHelper در Activity جدید استفاده کنید.
  3. هنگام ساخت Intent برای اجرای Activity از طریق اعلان، مقدار EXTRA_ANIMATION_TYPE را روی OPEN_ON_PHONE_ANIMATION تنظیم کنید.
این رویکرد کاربر را به سمت تعامل با تلفن خود هدایت می‌کند و از الزامات پلتفرم برای راه‌اندازی فرآیندهای پس‌زمینه پیروی می‌کند.

نکته: شما نمی‌توانید از BroadcastReceiver به عنوان هدف اکشن اعلان استفاده کنید.