Android 13 में, प्रतिबंधित नॉन-एसडीके इंटरफ़ेस की अपडेट की गई सूचियां शामिल हैं. ये सूचियां, Android डेवलपर के साथ मिलकर काम करने और हाल ही में हुई इंटरनल टेस्टिंग के आधार पर बनाई गई हैं. हम यह पक्का करते हैं कि गैर-एसडीके इंटरफ़ेस को प्रतिबंधित करने से पहले, सार्वजनिक विकल्प उपलब्ध हों.
अगर आपका ऐप्लिकेशन Android 13 को टारगेट नहीं करता है, तो हो सकता है कि इनमें से कुछ बदलावों का असर आप पर तुरंत न पड़े. हालांकि, फ़िलहाल कुछ नॉन-एसडीके इंटरफ़ेस का इस्तेमाल किया जा सकता है. यह आपके ऐप्लिकेशन के टारगेट एपीआई लेवल पर निर्भर करता है. हालांकि, किसी भी नॉन-एसडीके तरीके या फ़ील्ड का इस्तेमाल करने से, आपके ऐप्लिकेशन के काम न करने का जोखिम हमेशा ज़्यादा होता है.
अगर आपको पक्का नहीं है कि आपका ऐप्लिकेशन, SDK टूल के बाहर के इंटरफ़ेस का इस्तेमाल करता है या नहीं, तो यह पता लगाने के लिए अपने ऐप्लिकेशन की जांच करें. अगर आपका ऐप्लिकेशन, गैर-एसडीके इंटरफ़ेस पर निर्भर करता है, तो आपको एसडीके के विकल्पों पर माइग्रेट करने की योजना बनानी चाहिए. हालांकि, हम समझते हैं कि कुछ ऐप्लिकेशन के पास, गैर-एसडीके इंटरफ़ेस इस्तेमाल करने के लिए मान्य वजहें होती हैं. अगर आपको अपने ऐप्लिकेशन में किसी सुविधा के लिए, गैर-एसडीके इंटरफ़ेस के इस्तेमाल का कोई विकल्प नहीं मिल रहा है, तो आपको नया सार्वजनिक एपीआई अनुरोध करना चाहिए.
Android 13 के लिए बदलावों की सूची
Android 13 में, सूची में किए गए बदलावों को इस कैटगरी में रखा गया है:
- Android 12 (एपीआई लेवल 31) में काम न करने वाले ऐसे नॉन-एसडीके इंटरफ़ेस जो Android 13 में ब्लॉक कर दिए गए हैं.
Android 13 के लिए, गैर-एसडीके इंटरफ़ेस की पूरी सूची देखने के लिए, यहां दी गई फ़ाइल डाउनलोड करें:
फ़ाइल: hiddenapi-flags.csv
SHA-256 चेकसम: 233a277aa8ac475b6df61bffd95665d86aac6eb2ad187b90bf42a98f5f2a11a3
ऐसे नॉन-एसडीके इंटरफ़ेस जिन्हें अब Android 13 में ब्लॉक कर दिया गया है
नीचे दिए गए कोड बॉक्स में, Android 12 (एपीआई लेवल 31) में काम न करने वाले उन सभी नॉन-एसडीके इंटरफ़ेस की सूची दी गई है जिन्हें Android 13 (एपीआई लेवल 33) में ब्लॉक कर दिया गया है. इसका मतलब है कि ये इंटरफ़ेस, max-target-s
सूची में शामिल हैं. इसलिए, आपका ऐप्लिकेशन इन इंटरफ़ेस का इस्तेमाल सिर्फ़ तब कर सकता है, जब वह Android 12 (एपीआई लेवल 31) या इससे पहले के वर्शन को टारगेट करता हो.
हमारा मकसद यह पक्का करना है कि SDK टूल के बाहर के इंटरफ़ेस को प्रतिबंधित करने से पहले, सार्वजनिक विकल्प उपलब्ध हों. हम समझते हैं कि आपके ऐप्लिकेशन में इन इंटरफ़ेस का इस्तेमाल करने की कोई वजह हो सकती है. अगर आपके ऐप्लिकेशन में इस्तेमाल किया गया कोई इंटरफ़ेस, Android 13 में ब्लॉक कर दिया गया है, तो आपको उस इंटरफ़ेस के लिए नए सार्वजनिक एपीआई का अनुरोध करना चाहिए.
Landroid/app/Activity;->setDisablePreviewScreenshots(Z)V # Use setRecentsScreenshotEnabled() instead. Landroid/os/PowerManager;->isLightDeviceIdleMode()Z # Use isDeviceLightIdleMode() instead. Landroid/os/Process;->setArgV0(Ljava/lang/String;)V # In general, do not try to change the process name. If you must change the process name (for instance, for debugging), you can use pthread_setname_np() instead, though be aware that doing this might confuse the system. Landroid/view/accessibility/AccessibilityInteractionClient;->clearCache(I)V # Use android.accessibilityservice.AccessibilityService#clearCache() instead.