अगर आपका ऐप्लिकेशन अपने इस्तेमाल के उदाहरणों के लिए, दूसरे ऐप्लिकेशन के साथ इंटरैक्शन पर निर्भर है, तो पैकेज विज़िबिलिटी Android 11 (एपीआई लेवल 30) और उसके बाद के वर्शन में हुए बदलावों का असर आपके ऐप्लिकेशन पर पड़ेगा.
इस गाइड में, व्यवहार में होने वाले बदलावों की जांच करने के बारे में भी कुछ सुझाव दिए गए हैं साथ ही, आपको लॉग मैसेज को ज़्यादा जानकारी के साथ कॉन्फ़िगर करने में मदद करता है. आपके ऐप्लिकेशन पर किस तरह असर पड़ सकता है.
व्यवहार में हुए बदलावों की जांच करें
इस बदलाव से आपके ऐप्लिकेशन पर असर पड़ेगा या नहीं, यह पता करने के लिए: इसके लिए, नीचे दिया गया तरीका अपनाएं:
- Android Studio 3.6.1 या इसके बाद वाला वर्शन इंस्टॉल करें.
- Gradle का सबसे नया वर्शन इंस्टॉल करें, जो Android Studio पर काम करता हो.
- अपने ऐप्लिकेशन के
targetSdkVersion
को30
या उसके बाद के लेवल पर सेट करें. - अपने ऐप्लिकेशन की मेनिफ़ेस्ट फ़ाइल में,
<queries>
एलिमेंट को शामिल न करें. - कॉल करें
getInstalledApplications()
याgetInstalledPackages()
. सफल होने पर, दोनों तरीके फ़िल्टर की गई सूची दिखाते हैं. - देखें कि आपके ऐप्लिकेशन की कौनसी सुविधाएं काम नहीं कर रही हैं.
- सही
<queries>
का इस्तेमाल करें एंट्री करें.
पैकेज फ़िल्टर करने के लिए लॉग मैसेज कॉन्फ़िगर करें
ऐप्लिकेशन की डिफ़ॉल्ट रूप से दिखने की सेटिंग से, आपके ऐप्लिकेशन की परफ़ॉर्मेंस पर क्या असर होता है, इस बारे में ज़्यादा जानने के लिए है, तो पैकेज फ़िल्टर करने के लिए लॉग मैसेज की सुविधा चालू की जा सकती है. अगर आपको अपने चैनल पर या डीबग करने लायक ऐप्लिकेशन की जाँच की है, सिस्टम लॉग यह जानकारी देता है क्षमता के हिसाब से सही हैं. या फिर, आपके पास इसे मैन्युअल तरीके से चालू करने के लिए, इस निर्देश का पालन करें:
adb shell pm log-visibility --enable PACKAGE_NAME
इसके बाद, जब भी PackageManager
ऑब्जेक्ट के रिटर्न से पैकेज को फ़िल्टर किया जाता है
वैल्यू सेट करने के लिए, आपको Logcat में नीचे दिया गया मैसेज मिलता-जुलता दिखता है:
I/AppsFilter: interaction: PackageSetting{7654321 \ com.example.myapp/12345} -> PackageSetting{...} BLOCKED