طلب الأذونات على Wear OS

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

يشبه طلب الأذونات على نظام التشغيل Wear OS طلب الأذونات في التطبيقات المتوافقة مع الأجهزة الجوّالة، مع بعض حالات الاستخدام الإضافية. يفترض هذا المستند أنّك تفهم آلية عمل أذونات Android. إذا لم تكن على دراية بذلك، راجِع كيفية عمل الأذونات على Android.

تمامًا كما هو الحال في التطبيقات المتوافقة مع الأجهزة الجوّالة، على المستخدم منح أذونات لتطبيق Wear من أجل الوصول إلى وظائف معيّنة. في تطبيقات Wear، قدِّم وظائف مفيدة بدون طلب أي Permissions (أذونات).

سيناريوهات الأذونات

هناك عدة سيناريوهات قد تواجهها عند طلب الأذونات الخطيرة على نظام التشغيل Wear OS:

  • يطلب تطبيق Wear أذونات لتطبيق قيد التشغيل على الجهاز القابل للارتداء.

  • يطلب تطبيق Wear أذونات لتطبيق قيد التشغيل على الهاتف.

  • يطلب تطبيق "الهاتف" أذونات لتطبيق قيد التشغيل على جهازك المحمول.

  • يطلب تطبيق الهاتف أذونات متعددة لا يمكن استخدامها إلا عندما يكون الجهاز القابل للارتداء متصلاً.

للاطّلاع على جميع هذه السيناريوهات في تطبيق صالح، راجِع نموذج ExerciseSampleCompose على GitHub.

توضّح الأقسام التالية كلّ سيناريو من هذه السيناريوهات. للحصول على معلومات أكثر تفصيلاً عن طلب الأذونات، يُرجى الاطّلاع على قسم نماذج طلب الأذونات.

تطبيق Wear يطلب إذن استخدام جهاز قابل للارتداء

عندما يطلب تطبيق Wear إذنًا لتطبيق قيد التشغيل على جهاز قابل للارتداء، يعرض النظام مربّع حوار لطلب هذا الإذن من المستخدم. في تطبيقك، لا تطلب الأذونات إلا عندما يكون واضحًا للمستخدم سبب الحاجة إلى الأذونات لتنفيذ عملية معيّنة.

راجِع مبادئ الأذونات للتأكّد من تقديم أفضل تجربة للمستخدمين، ولا تنسَ التحقّق من shouldShowRequestPermissionRationale() وتقديم معلومات إضافية حسب الحاجة.

إذا كان التطبيق أو خلفية شاشة الساعة يتطلبان أكثر من إذن واحد في المرة الواحدة، تظهر طلبات الأذونات متعاقبة.

شاشات أذونات متعددة، واحدة تلو الأخرى
الشكل 1. تظهر شاشات الأذونات بالتتابع.

طلب تطبيق Wear إذن الوصول إلى الهاتف

عندما يطلب تطبيق Wear إذنًا من الهاتف، ��لى سبيل المثال، إذا أراد تطبيق متوافق مع الأ��هزة القابلة للارتداء الوصول إلى الصور أو بيانات حسّاسة أخرى في الإصدار المتوافق مع الأجهزة الجوّالة من التطبيق، يجب أن يوجّه تطبيق Wear المستخدم إلى الهاتف لقبول الإذن. ويمكن أن يقدّم تطبيق الهاتف معلومات إضافية للمستخدم باستخدام نشاط. في النشاط، أدرِج زرَّين: أحدهما لمنح الإذن والآخر لرفضه.

يوجّه تطبيق Wear المستخدم إلى الهاتف لمنح الإذن.
الشكل 2. يُرجى توجيه المستخدم إلى الهاتف لمنح الإذن.

طلب تطبيق "الهاتف" إذن استخدام جهاز قابل للارتداء

إذا كان المستخدم يستخدم تطبيقًا على الهاتف وكان التطبيق يتطلّب إذنًا للجهاز القابل للارتداء، مثلاً لتحميل الموسيقى مسبقًا في حال انقطاع الاتصال بالهاتف، يُرسِل تطبيق الهاتف المستخدم إلى الجهاز القابل للارتداء لقبول الإذن. يستخدم إصدار التطبيق المخصّص للأجهزة القابلة للارتداء الطريقة requestPermissions() لعرض مربّع حوار أذونات النظام.

يوجّه تطبيق الهاتف المستخدم إلى الجهاز القابل للارتداء لمنح الإذن.
الشكل 3. أرسِل المستخدم إلى الجهاز القابل للارتداء لمنح الإذن.

يطلب تطبيق "الهاتف" أذونات متعدّدة في آنٍ واحد

الشكل 4. مربّع حوار أذونات يستخدم ملفًا شخصيًا لجهاز مصاحب لطلب أذونات متعددة في طلب واحد

يمكن لتطبيقات الشركاء على نظام التشغيل Android 12 (المستوى 31 لواجهة برمجة التطبيقات) والإصدارات الأحدث استخدام ملفات ملف الشخصي للأجهزة المصاحبة عند الربط بساعة. يبسط استخدام الملف الشخصي عملية التسجيل من خلال تجميع منح مجموعة من الأذونات الخاصة بنوع الجهاز في خطوة واحدة.

يتم منح الأذونات المجمّعة للتطبيق المصاحب بعد اتصال الجهاز، ولا تستمر هذه الأذونات إلا عندما يكون الجهاز مرتبطًا. يؤدي حذف التطبيق أو إزالة الربط إلى إزالة الأذونات. للاطّلاع على التفاصيل، يُرجى الاطّلاع على AssociationRequest.Builder.setDeviceProfile().

أنماط طلبات الأذونات

هناك أنماط مختلفة لطلب الأذونات من المستخدمين. وترتيبها من حيث الأولوية هو:

  • اطلب الإذن في السياق عندما يكون من الواضح أنّه ضروري لأداء وظيفه معيّنة، ولكن ليس ضروريًا لتشغيل التطبيق ككل.

  • يجب تقديم معلومات توضيحية في السياق عندما لا يكون سبب طلب الإذن واضحًا ولا يكون الإذن ضروريًا لتشغيل التطبيق ككل.

يتم شرح هذه الأنماط في الأقسام التالية.

الطلب في سياق معيّن

اطلب الأذونات عندما يكون واضحًا للمستخدم سبب الحاجة إلى الإذن للقيام بعملية معيّنة. من المرجّح أن يمنح المستخدمون الإذن عندما يفهمون ارتباطه بالميزة التي يريدون استخدامها.

على سبيل المثال، قد يطلب أحد التطبيقات موقع المستخدم الجغرافي لعرض الأماكن المثيرة للاهتمام المجاورة. عندما ينقر المستخدم للبحث عن أماكن قريبة، يمكن للتطبيق طلب إذن الموقع الجغرافي على الفور لأنّ هناك علاقة واضحة بين البحث عن أماكن قريبة والحاجة إلى إذن الموقع الجغرافي. ونظرًا وضوح هذه العلاقة، ليس من الضروري أن يعرض التطبيق شاشات تعليمية إضافية.

يطلب التطبيق الإذن عندما يكون ذلك ضروريًا بشكل واضح.
الشكل 5. طلب إذن في السياق

تقديم معلومات في سياقها

يعرض الشكل 6 مثالاً على المحتوى التعليمي في السياق. لا يتطلّب التطبيق سوى منح الإذن لبدء الموقّت، ولكن تظهر إشارة تعليمية مضمّنة تفيد بأنّه تم قفل جزء من النشاط، وهو ميزة "رصد الموقع الجغرافي". عندما ينقر المستخدم على إشارة الالتقاط، تظهر شاشة طلب الإذن، ما يتيح للمستخدم فتح ميزة الكشف عن الموقع الجغرافي.

استخدِم الأسلوب shouldShowRequestPermissionRationale() لمساعدة تطبيقك في تحديد ما إذا كان سيقدّم المزيد من المعلومات. للاطّلاع على تفاصيل إضافية، يُرجى الاطّلاع على مقالة طلب أذونات التطبيق. بدلاً من ذلك، يمكنك فحص كيفية تعامل نموذج تطبيق المتحدّث على GitHub مع عرض المعلومات.

عند الحاجة إلى الإذن، يشرح التطبيق سبب ضرورته.
الشكل 6. تقديم معلومات تعليمية في سياقها

رفض الاسم المعرِّف

إذا رفض المستخدم إذنًا مطلوبًا ليس ضروريًا لنشاط مقص��د، لا تحظر عليه مواصلة النشاط. إذا تم إيقاف أجزاء معيّنة من النشاط بسبب الإذن المرفوض، قدِّم ملاحظات مرئية قابلة للتنفيذ.

يعرض الشكل 7 استخدام رمز قفل للإشارة إلى أنّه تم قفل ميزة لأنّ المستخدم لم يمنح الإذن لاستخدامها.

عندما يرفض المستخدم الإذن، يظهر رمز قفل بجانب الميزة المرتبطة به.
الشكل 7. رمز قفل يشير إلى أنّ إحدى الميزات مُقفَلة بسبب الإذن المرفوض

عندما يظهر مربّع حوار طلب إذن جهاز قابل للارتداء الذي تم رفضه سابقًا للمرة الثانية، فإنه يتضمّن خيار رفض، عدم عرض هذا الطلب مرة أخرى. إذا اختار المستخدم هذا الخيار، فإنّ الطريقة الوحيدة لمنحه هذا الإذن في المستقبل هي الانتقال إلى تطبيق "الإعدادات" على الجهاز القابل للارتداء.

يعرض النظام إيقاف طلب الإذن.
الشكل 8. يمكن للمستخدم الوصول إلى طلب إذن تم رفضه مرتين من خلال "الإعدادات".

يمكنك الاطّلاع على مزيد من المعلومات حول كيفية التعامل مع رفض الإذن.

أذونات الخدمات

لا يمكن إلا لنشاط استدعاء الأسلوب requestPermissions() ، لذا إذا تفاعل المستخدم مع تطبيقك باستخدام خدمة، مثلاً من خلال خلفية شاشة الساعة، يجب أن تفتح الخدمة نشاطًا قبل طلب الإذن. في هذا النشاط، قدِّم معلومات إضافية عن سبب الحاجة إلى الإذن.

بشكل عام، لا تطلب أذونات لخلفية شاشة الساعة. بدلاً من ذلك، يمكنك تنفيذ ملحق والسماح للمستخدم باختيار البيانات التي يريد عرضها من خلال الملحق.

الإعدادات

يمكن للمستخدم تغيير أذونات تطبيق Wear في "الإعدادات" في أي وقت. عندما يحاول المستخدم تنفيذ إجراء يتطلّب إذنًا، يجب أولاً استدعاء الأسلوب checkSelfPermission() لمعرفة ما إذا كان التطبيق يملك الإذن لتنفيذ العملية.

عليك إجراء هذا التحقّق حتى إذا سبق للمستخدم منح الإذن، لأنّه قد يُلغيه لاحقًا.

يمكن للمستخدم تغيير الأذونات من خلال تطبيق "الإعدادات".
الشكل 9. يمكن للمستخدم تغيير الأذونات باستخدام تطبيق "الإعدادات".