בקשת הרשאות ב-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. שולחים את המשתמש לטלפון כדי להעניק הרשאה.

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

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

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

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

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

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

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

דפוסים של בקשות הרשאה

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

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

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

התבניות האלה מוסברות בקטעים הבאים.

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

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

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

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

חינוך בהתאם להקשר

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

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

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

טיפול בדחייה

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

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

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

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

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

כך מטפלים בדחייה של הרשאה

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

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

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

הגדרות

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

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

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