كيفية اعطاء الصلاحيات Permission في Android Studio
سنتعلم في هذا البرنامج التعليمي اعطاء صلاحيات متعدد باستخدام لغة الجافا
في Android
Permission اعطاء الصلاحيات يحتاج تطبيق في اكثر الاوقات
الى الوصول الى بعض البيانات لتمنح تطبيق بعض المميزات مثل الوصول الى جهة
الاتصال لاستدعاء او جلب رقم معين يسهل على المستخدم من ادخل الرقم فرضا.امنح
تطبيقاتك الإذن بالوصول إلى ما يحتاج إليه فقط للوصول على جهازك لتوفير
الوظائف التي تطلبها منهم. على سبيل المثال ، سيحتاج تطبيق الطقس أو تطبيق
الملاحة بطبيعة الحال إلى الوصول إلى موقعك ليعمل بشكل صحيح او الوصول الى
الكاميرا و عديد من الصلاحيات
رابط تحميل الكود كامل اسفل المقال
الخطوة 1 نقوم بأضافة الصلاحيات التي نريد من المستخدم السماح بها
انسخ الكود التالي وقم بأضافتة في ملف AndroidManifest.xml
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
الخطوة 2 نقوم الان ببرمجة السماح بأعطاء الصلاحيات عندما يقوم المستخدم بالضغط زر الاجراء يطلب من اعطاء الصلاحيات التي قمت سابق وهي الوصول الى التخزين و الموقع و جهه الاتصال
نقوم الان بتعريف المتغير التالي خارج دالة onCreate
public static final int REQUEST_ID_MULTIPLE_PERMISSIONS = 1;
سوف نقوم بانشاء دالة تقوم بطلب اعطاء الصلاحيات من المستخدم
public static boolean checkAndRequestPermissions(Activity activity) {
if (Build.VERSION.SDK_INT >= 23) {
int storage = ContextCompat.checkSelfPermission(activity.getApplicationContext(), android.Manifest.permission.WRITE_EXTERNAL_STORAGE);
int loc = ContextCompat.checkSelfPermission(activity.getApplicationContext(), android.Manifest.permission.ACCESS_COARSE_LOCATION);
int loc2 = ContextCompat.checkSelfPermission(activity.getApplicationContext(), android.Manifest.permission.ACCESS_FINE_LOCATION);
int loc3 = ContextCompat.checkSelfPermission(activity.getApplicationContext(), android.Manifest.permission.READ_CONTACTS);
List<String> listPermissionsNeeded = new ArrayList<>();
if (storage != PackageManager.PERMISSION_GRANTED) {
listPermissionsNeeded.add(android.Manifest.permission.WRITE_EXTERNAL_STORAGE);
}
if (loc3 != PackageManager.PERMISSION_GRANTED) {
listPermissionsNeeded.add(android.Manifest.permission.READ_CONTACTS);
}
if (loc2 != PackageManager.PERMISSION_GRANTED) {
listPermissionsNeeded.add(android.Manifest.permission.ACCESS_FINE_LOCATION);
}
if (loc != PackageManager.PERMISSION_GRANTED) {
listPermissionsNeeded.add(android.Manifest.permission.ACCESS_COARSE_LOCATION);
}
if (!listPermissionsNeeded.isEmpty()) {
ActivityCompat.requestPermissions(activity, listPermissionsNeeded.toArray
(new String[listPermissionsNeeded.size()]), REQUEST_ID_MULTIPLE_PERMISSIONS);
return false;
}
}
return true;
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (ActivityCompat.checkSelfPermission(this, permissions[0]) == PackageManager.PERMISSION_GRANTED) {
switch (requestCode) {
case 1:
Toast.makeText(this, getString(R.string.Permission_Accepted), Toast.LENGTH_SHORT).show();
break;
}
Toast.makeText(this, getString(R.string.Permission_Accepted), Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, getString(R.string.Permission_Accepted), Toast.LENGTH_SHORT).show();
}
}
الخطوة الاخير نقوم بأستدعاء الدالة داخل زر الاجراء
عملنا عند الضغط على الاجراء تقوم الدالة بتحقق اذا لم يتم اعطاء صلاحيات يتم طلب
اعطاء الصلاحيات
((Button)findViewById(R.id.btu_permission)).setOnClickListener(new View.OnClickListener() {
public void onClick(View param1View) {
if(checkAndRequestPermissions(MainActivity.this)){
// الكود المراد وضعة هنا بعد اعطاء الصلاحيات
}
}
});
قم بتنزيل كود المصدر Permission مجانًا: انقر
هـــــــــــــــنــــــا للتحميل
لا تنسوا متابعتنا على موقعنا و الاشتراك في قناتنا على
اليوتيوب و مواقع التواصل الاجتماعي
والسلام عليكم ورحمة الله
شكرا لكم علي زيارة موقعنا " علوش لتقنية المعلومات "
إرسال تعليق