Skip to content

الشرح بالعربي

Abdullah Alhazmy edited this page Sep 19, 2016 · 1 revision

صلاحيات RunTimePermission ومكتبة Gota

قامت قوقل مؤخراً مع الاصدار الجديد للاندرويد 6 باضافة خاصية او ميزة جديدة لطلب الصلاحيات في التطبيقات, فاصبح بامكان المستخدم الموافقة او رفض اي صلاحية يطلبها البرنامج عن طريق رسالة تعرض للمستخدم, هذه الخاصية تعطي المستخدم فكرة كاملة عن كل صلاحية ولماذا المطور هو بحاجة لها, بالطبع لتنفيذ هذا الامر برمجياً يحتاج بعض الخطوات الطويلة, لذلك قام بعض المطورين بكتابة بعض المكتبات التي تسهل هذه العملية ومن احد هذه المكتبات هي مكتبة Gota التي قمت مؤخراً بكتابتها ونشرها على حسابي في الـ GitHub.

ماهي Gota ؟

Gota هي مكتبة تساعدك في طلب عدد غير محدود من الصلاحيات عن طريق بعض الاسطر البسيطة, كل ماتحتاجه هو اضافة المكتبة في مشروعك ومن ثم تقوم بانشاء Object من Gota وتقوم بتمرير الصلاحيات التي تحتاجها.

اضافة المكتبة

<dependency>
<groupId>net.alhazmy13.Gota</groupId>
<artifactId>libary</artifactId>
<version>(LAST_VERSION)</version>
</dependency>
dependencies {
    compile 'net.alhazmy13.Gota:libary:(LAST_VERSION)'
}

التعامل مع Gota

بعد اضافتك للمكتبة فانت بحاجة الى انشاء Object من Gota وتقوم بتمرير الصلاحيات المطلوبة عن طريق مصفوفة من نوع String[] وايضا تقوم بتمرير OnRequestPermissionsBack.

التعامل مع OnRequestPermissionsBack

OnRequestPermissionsBack تقوم بارجاع Object من نوع GotaResponse تستطيع من خلاله معرفة هل قام المستخدم بالموافقة على الصلاحيات او رفضها, وتستطيع استرجاع جميع الصلاحيات المقبولة او المرفوضة من قبل المستخدم وذلك عن طريق بعض الـ Methodes من بينها:

  • deniedPermissions() تقوم بارجاع مصفوفة من نوع String تحتوي على جميع الصلاحيات المرفوضة من قبل المستخدم
  • grantedPermissions() تقوم بارجاع مصفوفة من نوع String تحتوي على جميع الصلاحيات المرفوضة من قبل المستخدم
  • isGranted(String) اذا اردت معرفة هل قام المستخدم بالموافقة على صلاحية محددة او لا؟ فتستطيع تمرير الصلاحية لهذه الميثود وسترجع لك متغير من نوع Boolean
  • isDenied(String) مثل السابقة ولكن تحدد لك هل الصلاحية مرفوضة او لا
  • isAllGranted() للتاكد من ان جميع الصلاحيات مقبولة من قبل المستخدم *isAllDenied() للتاكد من ان جميع الصلاحية مرفوضة من قبل المستخدم hasDeniedPermission() لمعرفة هل قام المستخدم برفض اي صلاحية او لا