Android 13 में, पाबंदी वाले ऐसे इंटरफ़ेस की अपडेट की गई सूचियां शामिल हैं जो एसडीके के दायरे में नहीं आते. ये सूचियां, Android डेवलपर के साथ मिलकर की गई जांच और नई इंटरनल जांच के आधार पर बनाई गई हैं. जब भी मुमकिन हो, हम यह पक्का करते हैं कि SDK टूल के बाहर के इंटरफ़ेस पर पाबंदी लगाने से पहले, सार्वजनिक विकल्प उपलब्ध हों.
अगर आपका ऐप्लिकेशन Android 13 को टारगेट नहीं करता है, तो हो सकता है कि इनमें से कुछ बदलावों का असर आप पर तुरंत न पड़े. हालांकि, फ़िलहाल कुछ ऐसे इंटरफ़ेस का इस्तेमाल किया जा सकता है जो SDK टूल के नहीं हैं. यह इस बात पर निर्भर करता है कि आपके ऐप्लिकेशन का टारगेट एपीआई लेवल क्या है. हालांकि, SDK टूल के अलावा किसी भी दूसरे तरीके या फ़ील्ड का इस्तेमाल करने पर, आपके ऐप्लिकेशन के काम न करने का खतरा हमेशा बना रहता है.
अगर आपको नहीं पता कि आपका ऐप्लिकेशन, SDK टूल के बाहर के इंटरफ़ेस का इस्तेमाल करता है या नहीं, तो इस बारे में जानने के लिए अपने ऐप्लिकेशन की जांच करें. अगर आपका ऐप्लिकेशन, SDK टूल के अलावा किसी दूसरे इंटरफ़ेस पर निर्भर करता है, तो आपको SDK टूल के विकल्पों पर माइग्रेट करने की योजना बनानी चाहिए. हालांकि, हम समझते हैं कि कुछ ऐप्लिकेशन में, गैर-SDK इंटरफ़ेस का इस्तेमाल करने के लिए मान्य उदाहरण हैं. अगर आपको अपने ऐप्लिकेशन में किसी सुविधा के लिए, SDK टूल के अलावा किसी दूसरे इंटरफ़ेस का इस्तेमाल करने का विकल्प नहीं मिल रहा है, तो आपको नए सार्वजनिक एपीआई का अनुरोध करना चाहिए.
Android 13 में हुए बदलावों की सूची
Android 13 में सूची में किए गए बदलाव, इन कैटगरी में आते हैं:
- ऐसे नॉन-एसडीके इंटरफ़ेस जो Android 12 (एपीआई लेवल 31) में काम नहीं करते थे और जिन्हें Android 13 में ब्लॉक कर दिया गया है.
Android 13 के लिए, SDK टूल के बाहर के सभी इंटरफ़ेस की पूरी सूची देखने के लिए, यह फ़ाइल डाउनलोड करें:
फ़ाइल: hiddenapi-flags.csv
SHA-256 चेकसम: 233a277aa8ac475b6df61bffd95665d86aac6eb2ad187b90bf42a98f5f2a11a3
ऐसे गैर-SDK इंटरफ़ेस जो अब Android 13 में ब्लॉक किए गए हैं
नीचे दिए गए कोड बॉक्स में, ऐसे सभी इंटरफ़ेस की सूची दी गई है जो SDK इंटरफ़ेस नहीं हैं और 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.