ההתראות בשעונים משתמשות באותם ממשקי API ויש להן את אותו המבנה כמו ההתראות בטלפונים.
ההתראות יכולות להופיע בשעון בשתי דרכים:
- אפליקציה לנייד יוצרת התראה והמערכת מגשרת באופן אוטומטי את ההתראה הזו לשעון.
- אפליקציה למכשיר לביש יוצרת התראה.
בשני התרחישים, משתמשים במחלקה NotificationCompat.Builder כדי ליצור התראות. כשיוצרים התראות באמצעות מחלקת ה-Builder, המערכת דואגת להצגת ההתראות בצורה נכונה. לדוגמה, כששולחים התראה מהאפליקציה לנייד, כל התראה מופיעה ככרטיס בפיד ההתראות.
בדוגמה הבאה אפשר לראות איך ההתראות מוצגות.
איור 1. אותה התראה מוצגת בטלפון ובשעון.
כדי לקבל את התוצאות הטובות ביותר, מומלץ להשתמש באחת ממחלקות המשנה NotificationCompat.Style.
הערה:
שימוש ב-RemoteViews
מסיר מההתראות פריסות בהתאמה אישית, ובמכשיר הלביש מוצגים רק הטקסט והסמלים.
התראות מומלצות לגאדג'טים לבישים
כדאי להשתמש בהתראות שניתן להרחיב כנקודת התחלה לכל ההתראות, כי הן דרך מצוינת לעודד מעורבות של משתמשים במכשירים לבישים. ההתראות במצב המצומצם מוצגות במגש ההתראות לזמן קצר, כדי שאפשר יהיה לראות אותן במבט חטוף. אם המשתמש מקיש עליה, ההתראה מתרחבת ומוצג תוכן נוסף ופעולות שניתן לבצע, בחוויה סוחפת שמאפשרת גלילה.
אתם יכולים ליצור התראה שניתן להרחיב באותו אופן שבו יוצרים התראה כזו בנייד, באמצעות כל אחת ממחלקות המשנה NotificationCompat.Style. לדוגמה, התראה רגילה באמצעות
NotificationCompat.MessagingStyle
נראית כך:
איור 2. דוגמה להתראה של MessagingStyle ב-Wear OS.
אפשר לראות שההתראה כוללת כמה פעולות שמוצגות זו מעל זו בתחתית של המצב המורחב.
כדאי לדעת: אם ההתראות כוללות פעולה של 'תשובה', כמו באפליקציית הודעות, אתם יכולים לשפר את ההתנהגות של ההתראה. לדוגמה, אתם יכולים להפעיל תשובות באמצעות הקלטת קול ישירות מהמכשיר הלביש או תשובות טקסט מוגדרות מראש באמצעות setChoices().
מידע נוסף מופיע במאמר בנושא הוספת לחצן התגובה.
איך להימנע מהתראות כפולות
כברירת מחדל, ההתראות מועברות מאפליקציה נלווית בטלפון לכל השעונים המזווגים. האפשרות הזו מתאימה במיוחד אם לא מותקנת אפליקציה למכשיר לביש.
עם זאת, אם תבנו אפליקציה עצמאית לשעון ואפליקציה נלווית לטלפון, האפליקציות ייצרו התראות כפולות.
מערכת Wear OS מספקת דרך להפסיק התראות כפולות באמצעות ממשקי ה-API של Bridging. זה חשוב במיוחד לאפליקציות במכשירים עם 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 כיעד של פעולת ההתראה.