صفحة للموافقة على الصلاحيات
السلام عليكم ورحمة الله وبركاته
في هذه التدوينة اقدم لكم فيها كيف نقوم بإضافة صفحة للموافقة على صلاحيات الوصول لذاكرة التخزين الداخلية فتبدأ الشرح على بركة الله .
اولا : نفعل من خلال المكتبة Library خيار App Compat And Design .
ثانيا : نتوجه إلى حدث onCreate ونضيف بلوك write string الموجود في قسم File ومن خلاله سيتم إضافة الصلاحيات بشكل تلقائي في Android Manifest .
ثالثا : نتوجه إلى قسم Permission ونضيف بلوك التحقق من الصلاحيات طبعاً تحتاج لصلاحيتين القراءة والكتابة على ذاكرة التخزين الداخلية بالنسبة لقراءة ذاكرة التخزين الداخلية
READ_EXTERNAL_STORAGE
أما الكتابة على ذاكرة التخزين الداخلية
WRITE_EXTERNAL_STORAGE
فتضيفهما كما موضح بالصور أدناه
بعدها نتوجه الى صفحة الصلاحيات وهذه هي كما تشاهدون بالاسفل
طبعا سيكون عندك صفحة قبل الموافقة شكل وبعد الموافقة شكل اخر فمن الأفضل هو أن تنشئ كتلة إضافة وتضيف فيها التغييرات التي ستطرئ على الصفحة بعد الموافقة على الصلاحيات لأننا سنحتاجها مرتين وليكن اسمها MoreBlock .
نتوجه الى حدث onCreate ونضيف الكود أدناه مع إضافة الكتلة الإضافية
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == 1001) {
//User has clicked "grant" or "deny" in the runtime dialog
if (androidx.core.content.ContextCompat.checkSelfPermission(this, android.Manifest.permission.READ_EXTERNAL_STORAGE) == android.content.pm.PackageManager.PERMISSION_DENIED || androidx.core.content.ContextCompat.checkSelfPermission(this, android.Manifest.permission.WRITE_EXTERNAL_STORAGE) == android.content.pm.PackageManager.PERMISSION_DENIED) {
} else {
//هنا تضاف الكتلة الإضافية
}
}
ونتوجه إلى الزر ( سماح ) كما شاهدنا التصميم في الأعلى وهو لإظهار علبة حوار الصلاحيات ونضيف أيضا هذا الكود
if (Build.VERSION.SDK_INT >= 23) {
if (checkSelfPermission(android.Manifest.permission.WRITE_EXTERNAL_STORAGE) == android.content.pm.PackageManager.PERMISSION_DENIED && checkSelfPermission(android.Manifest.permission.READ_EXTERNAL_STORAGE) == android.content.pm.PackageManager.PERMISSION_DENIED) {
requestPermissions(new String[] {android.Manifest.permission.WRITE_EXTERNAL_STORAGE,android.Manifest.permission.READ_EXTERNAL_STORAGE}, 1001);
}
else {
//هنا الكتلة الاضافية
}
}
else {
//هنا الكتلة الإضافية
}
واخيرا إلى زر ( الصفحة الرئيسية ) كما شاهدنا بالتصميم أعلاه ونضيف بلوكات الانتقال الى الصفحة الرئيسية كما موضح بالصورة أدناه
او شاهد الشرح على قناتنا
نبذات مختصرة لعلها تفيدك
* نبذة مختصرة عن الزر (Button)
الزر حاجة تستخدم لتنفيذ الاوامر المضافة فيه من قبل المبرمج وهذا الزر يحتوي على ثلاثة احداث
ولابد من التنويه ان الزر يحتوي على ثلاثة احدث :
* حدث onClick
تضيف في هذا الحدث الاوامر التي تريد تنفيذها عند الضغط على الزر
* حدث onLongClicked
المقصود به عند الضغط المطول على الزر فينفذ الاوامر الموجودة فيه .
* حدث onTouched
المقصود به عند لمس الزر
* نبذة مختصرة عن حدث onCreate
تضاف الاوامر في هذا الحدث ويتم تنفيذ الاوامر الموجود فيه عند فتح التطبيق في حال كانت الصفحة هي الصفحة الرئيسية وايضا يتم تنفيذها الاوامر عند التنقل بين الصفحات يعني لو انتقلنا الى صفحة مثلا الاعدادات ورجعنا للصفحة الرئيسية فايضا يتم تنفيذ الاوامر الموجودة في هذا الحدث
اتمنى أن يكون الشرح نال اعجابكم دمتم بخير