اعلانهای ساعتها از همان میاناهای برنامهسازی کاربردی استفاده میکنند و ساختاری مشابه اعلانهای تلفن دارند.
اعلانها به دو روش میتوانند روی ساعت نشان داده شوند:
- برنامه تلفن همراه اعلانی ایجاد میکند و سیستم بهطور خودکار آن اعلان را به ساعت منتقل میکند.
- برنامه پوشیدنی اعلانی ایجاد میکند.
برای هر دو سناریو، از کلاس
NotificationCompat.Builder
برای ایجاد اعلان استفاده کنید. وقتی اعلانها را با کلاس سازنده میسازید، سیستم
از نمایش صحیح اعلانها مراقبت میکند. برای مثال، وقتی اعلانی از برنامه تلفن همراهتان صادر میکنید، هر اعلان بهصورت کارت در «جاریسازی اعلان» نشان داده میشود.
برای دیدن نحوه نمایش اعلانها، مثال زیر را مرور کنید.
برای بهترین نتایج، از یکی از زیرکلاسهای
NotificationCompat.Style
استفاده کنید.
توجه:
استفاده از RemoteViews
اعلانهای چیدمانهای سفارشی را حذف میکند و پوشیدنی فقط نوشتار و نمادها را نمایش میدهد.
توجه:
اعلانهای هدف تمامصفحه (setFullScreenIntent())
و اجازه USE_FULL_SCREEN_INTENT
در Wear OS پشتیبانی نمیشود.
اعلانهای توصیهشده برای فناوریهای پوشیدنی
از اعلانهای ازهم بازشدنی بهعنوان نقطه شروع برای همه اعلانها استفاده کنید، زیرا این اعلانها روش بسیار خوبی برای تعامل با کاربران دستگاههای پوشیدنی هستند. وضعیت جمعشده در سینی اعلان برای تجربه کوتاه و سریع نمایش داده میشود. اگر کاربر روی آن تکضرب بزند، اعلان ازهم باز میشود و تجربه پیمایش فراگیری از محتوا و کنشهای اضافی را نشان میدهد.
میتوانید همانطور که در تلفن همراه اعلان ازهم بازشدنی ایجاد میکنید
بااستفاده از هریک از زیرکلاسهای NotificationCompat.Style
این کار را انجام دهید. برای مثال، اعلان استاندارد بااستفاده از
NotificationCompat.MessagingStyle
به این شکل است:
MessagingStyle در Wear OS.
میتوانید ببینید که اعلان چندین کنش دارد که در پایین حالت ازهم بازشده چیده شدهاند.
نکته: اگر اعلانهایتان شامل کنش «پاسخ» باشد، مثلاً برای برنامه پیامرسانی، میتوانید عملکرد اعلان را بهبود دهید. برای مثال، میتوانید ورودی صوتی
پاسخها را مستقیماً از پوشیدنی یا پاسخهای نوشتاری ازپیشتعریفشده با
setChoices() فعال کنید.
برای اطلاعات بیشتر،
افزودن دکمه پاسخ را بخوانید.
از اعلانهای تکراری اجتناب کنید
بهطور پیشفرض، اعلانها از برنامه تلفن همراه به همه ساعتهای جفتشده منتقل میشوند. اگر برنامه پوشیدنی نصب نکردهاید، این گزینه عالی است.
بااینحال، اگر برنامه ساعت مستقل و برنامه همراه تلفن بسازید، برنامهها اعلانهای تکراری ایجاد میکنند.
Wear OS با «میاناهای برنامهسازی کاربردی پلسازی» روشی برای متوقف کردن اعلانهای تکراری ارائه میدهد. این موضوع بهویژه برای برنامههایی که در دستگاههای دارای Wear OS 5 یا نسخههای بالاتر اجرا میشوند اهمیت دارد، زیرا برخیاز اعلانهایی که در دستگاه همراه قابلبسته شدن هستند در دستگاه Wear OS قابلبسته شدن نیستند. برای اطلاعات بیشتر، گزینههای پلسازی برای اعلانها را بخوانید.
افزودن ویژگیهای مختص پوشیدنی به اعلان
اگر لازم است ویژگیهای خاص دستگاه پوشیدنی را به اعلانی اضافه کنید، میتوانید از
NotificationCompat.WearableExtender کلاس برای مشخص کردن گزینهها استفاده کنید.
برای استفاده از این API، کارهای زیر را انجام دهید:
توجه:
اگر از چارچوب NotificationManager استفاده میکنید،
برخیاز ویژگیهای
NotificationCompat.WearableExtender کار نمیکنند، بنابراین حتماً از
NotificationCompat استفاده کنید.
این مثال نشان میدهد چگونه یک کنش ویژه Wear را روی اعلان تنظیم کنید و همچنین
شناسه بستن اعلان را تنظیم کنید. وقتی اعلان بسته میشود، همه اعلانهای دیگر با شناسه بسته شدن یکسان در ساعت و تلفن همراه بسته میشوند. برای بازیابی شناسه رد،
از
getDismissalId() استفاده کنید.
// This intent will be fired as a result of the user clicking the "Open on watch" action. // However, it executes on the phone, not on the watch. Typically, the Activity should then use // RemoteActivityHelper to then launch the correct activity on the watch. val intent = Intent(context, LaunchOnWearActivity::class.java) val wearPendingIntent = PendingIntent.getActivity( context, wearRequestCode, intent, PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE ) val openOnWatchAction = NotificationCompat.Action.Builder( R.drawable.watch, "Open on watch", wearPendingIntent ) .build() val wearableExtender = NotificationCompat.WearableExtender() // This action will only be shown on the watch, not on the phone. // Actions added to the Notification builder directly will not be shown on the watch, // because one or more actions are defined in the WearableExtender. .addAction(openOnWatchAction) // This synchronizes dismissals between watch and phone. .setDismissalId(chatId) val notification = NotificationCompat.Builder(context, channelId) // ... set other fields ... .extend(wearableExtender) .build()
راهاندازی برنامه تلفن از دستگاه پوشیدنی
اگر از اعلانهای پلزدهشده استفاده میکنید، هر اعلانی بهطور خودکار شامل دکمهای برای راهاندازی برنامه در تلفن است. بااینحال، اگر از اعلان محلی استفاده میکنید که در ساعت ایجاد شده است، از مراحل زیر برای ایجاد دکمهای که برنامه را در تلفن راهاندازی میکند استفاده کنید:
Activityجدیدی بسازید کهConfirmationActivityرا گسترش دهد.- از
RemoteActivityHelperدرActivityجدید برای راهاندازی برنامه تلفن استفاده کنید. - هنگام ساختن
Intentبرای راهاندازیActivityاز اعلان،EXTRA_ANIMATION_TYPEاضافی را رویOPEN_ON_PHONE_ANIMATIONتنظیم کنید.
این رویکرد کاربر را به تعامل در تلفن خود هدایت میکند و از الزامات پلاتفرم برای راهاندازی فرایندهای پسزمینهای پیروی میکند.
توجه: نمیتوانید از BroadcastReceiver بهعنوان هدف
کنش اعلان استفاده کنید.