पैकेज दिखने के तरीके की जांच करें

अगर आपका ऐप्लिकेशन, इस्तेमाल के अपने मामलों को पूरा करने के लिए, दूसरे ऐप्लिकेशन के साथ इंटरैक्शन पर निर्भर करता है, तो यह टेस्ट करना मददगार होता है कि Android 11 (एपीआई लेवल 30) और इसके बाद के वर्शन में, पैकेज की जानकारी देखने की सुविधा में होने वाले बदलावों से आपके ऐप्लिकेशन पर क्या असर पड़ता है.

इस गाइड में, व्यवहार में होने वाले बदलावों की जांच करने के तरीके के बारे में कुछ सुझाव भी दिए गए हैं. साथ ही, यह लॉग मैसेज कॉन्फ़िगर करने में आपकी मदद करती है, ताकि यह पता लगाया जा सके कि आपके ऐप्लिकेशन पर किस तरह असर पड़ सकता है.

व्यवहार में होने वाले बदलावों की जांच करना

यह जांचने के लिए कि व्यवहार में होने वाले इस बदलाव से आपके ऐप्लिकेशन पर असर पड़ता है या नहीं, यह तरीका अपनाएं:

  1. Android Studio 3.6.1 या इसके बाद का वर्शन इंस्टॉल करें.
  2. Gradle का वह नया वर्शन इंस्टॉल करें जो Android Studio के साथ काम करता हो.
  3. अपने ऐप्लिकेशन के targetSdkVersion को 30 या इसके बाद के लेवल पर सेट करें.
  4. अपने ऐप्लिकेशन की मेनिफ़ेस्ट फ़ाइल में <queries> एलिमेंट शामिल न करें.
  5. getInstalledApplications() या getInstalledPackages() को कॉल करें. सफल होने पर, दोनों तरीके फ़िल्टर की गई सूची दिखाते हैं.
  6. देखें कि आपके ऐप्लिकेशन की कौनसी सुविधाएं काम नहीं कर रही हैं.
  7. उन सुविधाओं को ठीक करने के लिए, <queries> की सही एंट्री जोड़ें.

पैकेज फ़िल्टर करने के लिए, लॉग मैसेज कॉन्फ़िगर करना

ऐप्लिकेशन की डिफ़ॉल्ट जानकारी देखने की सुविधा से आपके ऐप्लिकेशन पर क्या असर पड़ता है, इस बारे में ज़्यादा जानने के लिए, पैकेज फ़िल्टर करने के लिए लॉग मैसेज की सुविधा चालू की जा सकती है. अगर Android Studio में टेस्ट ऐप्लिकेशन या डीबग किए जा सकने वाला ऐप्लिकेशन डेवलप किया जा रहा है, तो सिस्टम लॉग में यह सुविधा उपलब्ध होती है. इसके अलावा, इसे मैन्युअल तरीके से चालू करने के लिए, टर्मिनल विंडो में यह कमांड चलाई जा सकती है:

adb shell pm log-visibility --enable PACKAGE_NAME

इसके बाद, जब भी PackageManager ऑब्जेक्ट की दिखाई गई वैल्यू से पैकेज फ़िल्टर किए जाते हैं, तो Logcat में आपको इस तरह का मैसेज दिखता है:

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