أفضل ممارسات أذونات التطبيقات

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

للحصول على نظرة عامة على أذونات Android، يُرجى الاطّلاع على نظرة عامة على الأذونات. للحصول على تفاصيل عن كيفية التعامل مع الأذونات في الرمز البرمجي، يُرجى اتّباع الخطوات التالية: راجِع طلب أذونات التطبيق.

الأذونات في Android 6.0 والإصدارات الأحدث

في الإصدار Android 6.0 (المستوى 23 من واجهة برمجة التطبيقات) والإصدارات الأحدث، يمكن للتطبيقات طلب أذونات من للمستخدم في وقت التشغيل، وليس قبل التثبيت. يسمح هذا للتطبيقات طلب أذونات عندما يتطلب التطبيق الخدمات أو البيانات محمية من خلال الخدمات. على الرغم من أن هذا لا يؤدي (بالضرورة) إلى تغيير التطبيق بشكل عام يؤدي إلى إنشاء بعض التغييرات ذات الصلة بالطريقة التي تستخدم بها بيانات المستخدم :

زيادة السياق الظرفي

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

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

مرونة أكبر في منح الأذونات

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

زيادة أعباء المعاملات

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

الأذونات التي تتطلب أن تصبح معالجًا تلقائيًا

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

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

التعرف على المكتبات التي تتعامل معها

تتطلب المكتبات التي تستخدمها في تطبيقك أحيانًا الحصول على أذونات. بالنسبة قد تتطلب مكتبات الإعلانات والإحصاءات الوصول إلى LOCATION مجموعة أذونات لتنفيذ المطلوب الأخرى. ولكن من وجهة نظر المستخدم، يأتي طلب الإذن من التطبيق، وليس من المكتبة.

مثلما يختار المستخدمون التطبيقات التي تستخدم أذونات أقل لنفس وظيفتها، يجب على المطورين مراجعة مكتباتهم وتحديد حِزم SDK التابعة لجهات خارجية والتي لا تستخدم أذونات غير ضرورية على سبيل المثال، إذا تستخدم مكتبة توفر وظائف تحديد الموقع، فتأكد من لا تطلب إذن FINE_LOCATION ما لم تكن باستخدام وظيفة الاستهداف المستندة إلى الموقع الجغرافي

تقييد الوصول إلى الموقع الجغرافي في الخلفية

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

اختبار كلا نموذجَي الأذونات

في نظام التشغيل Android 6.0 (مستوى واجهة برمجة التطبيقات 23) والإصدارات الأحدث، يمكن للمستخدمين منح التطبيق وإبطاله. أذونات في وقت التشغيل، بدلاً من منحها عند تثبيت التطبيق. نتيجة لذلك، أُنشئت مكتبة مات بلوت ليب في سيكون عليك اختبار تطبيقك في ظل مجموعة أكبر من الشروط. الفترة السابقة إلى Android 6.0، فيمكن أن تفترض بشكل معقول أنه إذا كان تطبيقك يعمل في فهو يحتوي على كل الأذونات التي يفصح عنها في بيان التطبيق. الآن، يستخدم المستخدم تفعيل الأذونات أو إيقافها لأي تطبيق، بغض النظر عن مستوى واجهة برمجة التطبيقات يجب إجراء اختبار للتأكّد من أنّ تطبيقك يعمل بشكل صحيح عبر مختلف سيناريوهات الأذونات.

ستساعدك النصائح التالية في العثور على المشاكل المتعلّقة بالرموز البرمجية المتعلّقة بالأذونات. على الأجهزة التي تعمل بالمستوى 23 من واجهة برمجة التطبيقات أو المستويات الأحدث:

  • حدِّد الأذونات الحالية لتطبيقك ومسارات الرموز ذات الصلة.
  • يمكنك اختبار مسارات المستخدم في الخدمات والبيانات المحمية بالأذونات.
  • يمكنك إجراء اختبار باستخدام مجموعات مختلفة من الأذونات الممنوحة أو التي تم إبطالها. بالنسبة على سبيل المثال، قد يسرد أحد تطبيقات الكاميرا CAMERA وREAD_CONTACTS و ACCESS_FINE_LOCATION في بيانه. يجب اختبار التطبيق بكل من هذه الأذونات بين التشغيل والإيقاف، للتأكد من أن التطبيق يمكنه التعامل مع كل الأذونات الإعدادات على نحو مرن.
  • استخدِم أداة adb لإدارة الأذونات من سطر الأوامر:
    • إدراج الأذونات والحالة حسب المجموعة:
      $ adb shell pm list permissions -d -g
    • منح أو إبطال إذن واحد أو أكثر:
      $ adb shell pm [grant|revoke] <permission-name> ...
  • تحليل تطبيقك للخدمات التي تستخدم الأذونات

مصادر إضافية