בקשת הרשאות ב-Wear OS

keywords: wear, permissions, collection_guideslandingwear image_path: images/training/wear/multiple_permissions.png

בקשת הרשאות ב-Wear OS דומה לבקשת הרשאות באפליקציות לנייד, עם כמה תרחישי שימוש נוספים. במאמר הזה אנחנו מניחים שאתם מבינים איך פועלות ההרשאות ב-Android. אם לא, כדאי לעיין במידע על אופן הפעולה של ההרשאות ב-Android.

בדומה לאפליקציה לנייד, המשתמש צריך להעניק הרשאות לאפליקציה ל-Wear כדי לגשת לפונקציונליות מסוימת. באפליקציות ל-Wear, צריך לספק פונקציונליות משמעותית בלי לבקש הרשאות.

תרחישים של הרשאות

יש כמה תרחישים שיכולים לקרות כשמבקשים הרשאות מסוכנות ב-Wear OS:

  • אפליקציית Wear מבקשת הרשאות לאפליקציה שפועלת במכשיר הלביש.

  • אפליקציית Wear מבקשת הרשאות לאפליקציה שפועלת בטלפון.

  • אפליקציית הטלפון מבקשת הרשאות לאפליקציה שפועלת במכשיר הלביש.

  • אפליקציית הטלפון מבקשת כמה הרשאות שאפשר להשתמש בהן רק כשהמכשיר הלביש מחובר.

כדי לראות את כל התרחישים האלה באפליקציה פעילה, אפשר לעיין בדוגמה ExerciseSampleCompose ב-GitHub.

בקטעים הבאים מוסבר על כל אחד מהתרחישים האלה. מידע מפורט יותר על בקשת הרשאות זמין בקטע דפוסי בקשות להרשאות.

בקשה להרשאה לשימוש במכשיר לביש באפליקציית Wear

כשאפליקציית Wear מבקשת הרשאה לאפליקציה שפועלת במכשיר הלביש, המערכת מציגה תיבת דו-שיח שבה המשתמש מתבקש לאשר את ההרשאה. באפליקציה, צריך לבקש הרשאות רק כשהמשתמש מבין למה נדרשות ההרשאות כדי לבצע פעולה מסוימת.

כדאי לעיין בעקרונות ההרשאות כדי לוודא שאתם מספקים את חוויית המשתמש הטובה ביותר. חשוב לזכור לסמן את התיבה shouldShowRequestPermissionRationale() ולספק מידע נוסף לפי הצורך.

אם אפליקציה או תצוגת שעון דורשות יותר מהרשאה אחת בכל פעם, בקשות ההרשאה מופיעות אחת אחרי השנייה.

מספר מסכי הרשאות, אחד אחרי השני.
איור 1. מסכי הרשאות שמופיעים בזה אחר זה.

אפליקציית Wear מבקשת הרשאה לטלפון

כשאפליקציית Wear מבקשת הרשאה בטלפון – לדוגמה, אפליקציה לבישה רוצה גישה לתמונות או למידע אישי רגיש אחר בגרסה לנייד של האפליקציה – אפליקציית Wear צריכה להפנות את המשתמש לטלפון כדי לאשר את ההרשאה. באפליקציית הטלפון, אפשר להציג למשתמש מידע נוסף באמצעות פעילות. בפעילות, צריך לכלול שני לחצנים: אחד למתן ההרשאה ואחד לדחיית ההרשאה.

אפליקציית Wear מפנה את המשתמש לטלפון כדי להעניק הרשאה.
איור 2. המשתמש צריך לאשר את ההרשאה בטלפון.

אפליקציית הטלפון מבקשת הרשאה למכשיר לביש

אם המשתמש נמצא באפליקציית טלפון והאפליקציה דורשת הרשאה למכשיר לביש – לדוגמה, כדי לטעון מראש מוזיקה למקרה שהטלפון יתנתק – אפליקציית הטלפון מפנה את המשתמש למכשיר הלביש כדי לאשר את ההרשאה. הגרסה של האפליקציה למכשיר הלביש משתמשת בשיטה requestPermissions() כדי להפעיל את תיבת הדו-שיח של הרשאות המערכת.

אפליקציית הטלפון שולחת את המשתמש למכשיר הלביש כדי להעניק הרשאה.
איור 3. שולחים את המשתמש למכשיר הלביש כדי להעניק הרשאה.

אפליקציית הטלפון מבקשת כמה הרשאות בבת אחת

איור 4. תיבת דו-שיח של הרשאות שמשתמשת בפרופיל של מכשיר נלווה כדי לבקש כמה הרשאות בבקשה אחת.

אפליקציות של שותפים ב-Android 12 (רמת API‏ 31) ומעלה יכולות להשתמש בפרופילים של מכשירים נלווים כשהן מתחברות לשעון. השימוש בפרופיל מפשט את תהליך ההרשמה כי הוא מאפשר להעניק קבוצה של הרשאות ספציפיות לסוג המכשיר בשלב אחד.

ההרשאות שכלולות בחבילה ניתנות לאפליקציה הנלווית ברגע שהמכשיר מתחבר, והן תקפות רק בזמן שהמכשיר משויך. מחיקת האפליקציה או הסרת השיוך יסירו את ההרשאות. פרטים נוספים זמינים במאמר AssociationRequest.Builder.setDeviceProfile().

תבניות של בקשות הרשאה

יש דפוסים שונים לבקשת הרשאות מהמשתמשים. לפי סדר העדיפות:

  • לבקש הרשאה בהקשר אם ברור שהיא נחוצה לפונקציונליות ספציפית, אבל לא נחוצה להפעלת האפליקציה כולה.

  • הסבירו בהקשר למה נדרשת ההרשאה, אם הסיבה לא ברורה וההרשאה לא נחוצה להפעלת האפליקציה כולה.

הדפוסים האלה מוסברים בקטעים הבאים.

שאלות בהקשר הרלוונטי

בקשו הרשאות רק כשברור למשתמש למה נדרשת ההרשאה כדי לבצע פעולה מסוימת. הסיכוי שהמשתמשים יאשרו הרשאה גבוה יותר אם הם מבינים את הקשר שלה לתכונה שבה הם רוצים להשתמש.

לדוגמה, אפליקציה עשויה לדרוש את המיקום של המשתמש כדי להציג מקומות מעניינים בקרבת מקום. כשהמשתמש מקיש על האפשרות לחפש מקומות בקרבת מקום, האפליקציה יכולה לבקש מיד את הרשאת המיקום, כי יש קשר ברור בין חיפוש מקומות בקרבת מקום לבין הצורך בהרשאת המיקום. הקשר הזה כל כך ברור שלא צריך להציג במסך האפליקציה הסברים נוספים.

האפליקציה מבקשת הרשאה רק כשברור שהיא נחוצה.
איור 5. בקשת הרשאה בהקשר.

הסבר בהקשר

איור 6 מציג דוגמה להסבר בהקשר. האפליקציה לא דורשת הרשאות כדי להפעיל את הטיימר, אבל מוצג רמז הסבר מוטבע שמציין שחלק מהפעילות – זיהוי המיקום – נעול. כשמשתמש מקיש על רמז, מופיע מסך בקשת הרשאה שמאפשר למשתמש לבטל את הנעילה של זיהוי המיקום.

אפשר להשתמש בשיטה shouldShowRequestPermissionRationale() כדי לעזור לאפליקציה להחליט אם לספק מידע נוסף. פרטים נוספים זמינים במאמר בנושא בקשת הרשאות לאפליקציה. אפשר גם לבדוק איך אפליקציית הרמקול לדוגמה ב-GitHub מטפלת בהצגת מידע.

כשהאפליקציה צריכה את ההרשאה, היא מסבירה למה היא נחוצה.
איור 6. הסבר בהקשר.

טיפול בדחייה

אם המשתמש דוחה בקשת הרשאה שלא חיונית לפעילות המיועדת, אל תחסמו את המשך הפעילות. אם חלקים מסוימים בפעילות מושבתים בגלל שההרשאה נדחתה, צריך לספק משוב חזותי שמאפשר לבצע פעולה.

באיור 7 מוצג סמל של מנעול שמציין שתכונה נעולה כי המשתמש לא העניק הרשאה להשתמש בה.

אם המשתמש דוחה את ההרשאה, מוצג סמל של נעילה לצד התכונה המשויכת.
איור 7. סמל נעילה שמראה שתכונה נעולה בגלל שאין הרשאה להשתמש בה.

כשתיבת דו-שיח של הרשאה למכשיר לביש שנדחתה בעבר מופיעה בפעם השנייה, היא כוללת את האפשרות דחייה, לא להציג שוב. אם המשתמש בוחר באפשרות הזו, הדרך היחידה להעניק את ההרשאה הזו בעתיד היא להיכנס לאפליקציית ההגדרות של המכשיר הלביש.

המערכת מציעה להפסיק את בקשת ההרשאה.
איור 8. המשתמש יכול לגשת דרך ההגדרות לבקשת הרשאה שנדחתה בעבר פעמיים.

מידע נוסף על טיפול בדחיית הרשאה

הרשאות לשירותים

רק פעילות יכולה לקרוא לשיטה requestPermissions(). לכן, אם המשתמש מקיים אינטראקציה עם האפליקציה באמצעות שירות – למשל, באמצעות תצוגת שעון – השירות צריך לפתוח פעילות לפני שהוא מבקש את ההרשאה. בפעילות הזו, מספקים הסבר נוסף על הסיבה לכך שההרשאה נדרשת.

באופן כללי, לא צריך לבקש הרשאות לתצוגת שעון. במקום זאת, מטמיעים סיבוך ומאפשרים למשתמש לבחור אילו נתונים יוצגו דרך הסיבוך.

הגדרות

משתמש יכול לשנות את ההרשאות של אפליקציית Wear בהגדרות בכל שלב. כשהמשתמש מנסה לבצע פעולה שנדרשת לה הרשאה, צריך קודם לקרוא לשיטה checkSelfPermission() כדי לבדוק אם לאפליקציה יש הרשאה לבצע את הפעולה.

חשוב לבצע את הבדיקה הזו גם אם המשתמש כבר העניק את ההרשאה בעבר, כי יכול להיות שהוא ביטל אותה מאוחר יותר.

המשתמש יכול לשנות את ההרשאות דרך אפליקציית ההגדרות.
איור 9. המשתמש יכול לשנות את ההרשאות באמצעות אפליקציית ההגדרות.