اختبار سلوك إذن الوصول إلى الحزمة

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

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

اختبار التغييرات في السلوك

لاختبار ما إذا كان هذا التغيير في السلوك يؤثر في تطبيقك، أكمِل الخطوات التالية:

  1. تثبيت الإصدار 3.6.1 من "استوديو Android" أو إصدار أحدث
  2. ثبِّت أحدث إصدار من Gradle المتوافق مع "استوديو Android".
  3. يجب ضبط قيمة targetSdkVersion في تطبيقك على 30 أو أعلى.
  4. لا تضمِّن العنصر <queries> في ملف البيان لتطبيقك.
  5. يمكنك الاتصال getInstalledApplications() أو getInstalledPackages(). وتُرجع كلتا الطريقتين قائمة تمت تصفيتها عندما تكون ناجحة.
  6. اطّلِع على ميزات تطبيقك التي لا تعمل.
  7. أدخِل إدخالات <queries> المناسبة لإصلاح هذه الميزات.

ضبط رسائل السجلّ لفلترة الطرود

لاكتشاف المزيد من التفاصيل حول كيفية تأثير مستوى الرؤية التلقائي للتطبيقات في تطبيقك، يمكنك تفعيل رسائل السجلّ لفلترة الحزم. إذا كنت تطوّر تطبيقًا تجريبيًا أو تطبيقًا يمكن تصحيح الأخطاء فيه في "استوديو Android"، سيوفّر لك سجلّ النظام هذه الإمكانية. بخلاف ذلك، يمكنك تشغيل الأمر التالي في نافذة طرفية لتمكينه يدويًا:

adb shell pm log-visibility --enable PACKAGE_NAME

بعد ذلك، عند فلترة الحِزم خارج القيم المعروضة لكائن PackageManager، ستظهر لك رسالة مشابهة لما يلي في Logcat:

I/AppsFilter: interaction: PackageSetting{7654321 \
  com.example.myapp/12345} -> PackageSetting{...} BLOCKED