أخطاء APK

SecurityException: الإذن مرفوض

نص الخطأ

java.lang.SecurityException: Permission Denial: opening provider ... requires android.permission.READ_MEDIA_IMAGES
SecurityException: Neither user 10123 nor current process has android.permission.CAMERA

السبب

تستدعي الشيفرة عملية تحتاج إذنًا لكن المانيفست لا يحويه أو لم يمنحه المستخدم وقت التشغيل.

الحل خطوة بخطوة

  1. تأكد أن سطر <uses-permission> موجود في AndroidManifest.xml.
  2. يجب طلب الأذونات الخطرة (الكاميرا والموقع والميكروفون) وقت التشغيل بـ requestPermissions أو Activity Result API.
  3. في Android 13+ استخدم أذونات جديدة مثل READ_MEDIA_IMAGES بدل READ_EXTERNAL_STORAGE.
  4. إن رُفض الإذن فيجب ألا ينهار التطبيق بل يعرض شرحًا.
  5. للاختبار امنح الإذن بـ adb shell pm grant أو صفّره بـ pm reset-permissions.

أوامر للمثال

adb shell pm grant com.example.app android.permission.CAMERA
adb shell dumpsys package com.example.app | grep -A3 "granted=false"
adb shell pm reset-permissions

كيف لا يتكرر

اطلب كل إذن قبل أول استخدام مباشرة مع شرح.

المؤلف والترخيص: Nibras Code