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

מילות מפתח: wear, הרשאות, 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. המשתמש יכול לשנות את ההרשאות באמצעות אפליקציית ההגדרות.