Android 13'te SDK dışı arayüz kısıtlamalarıyla ilgili güncellemeler
Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
Android 13, Android geliştiricilerle işbirliği ve en son dahili testlere dayalı olarak kısıtlanmış SDK dışı arayüzlerin güncellenmiş listelerini içerir. Mümkün olduğunda, SDK olmayan arayüzleri kısıtlamadan önce herkese açık alternatiflerin kullanılabilir olmasını sağlarız.
Uygulamanız Android 13'ü hedeflemiyorsa bu değişikliklerin bazıları sizi hemen etkilemeyebilir. Ancak şu anda bazı SDK dışı arayüzleri (uygulamanızın hedef API düzeyine bağlı olarak) kullanabilseniz de herhangi bir SDK dışı yöntemi veya alanı kullanmak uygulamanızın bozulma riskini her zaman yüksek tutar.
Uygulamanızın SDK dışı arayüzler kullanıp kullanmadığından emin değilseniz öğrenmek için uygulamanızı test edebilirsiniz. Uygulamanız SDK dışı arayüzleri kullanıyorsa SDK alternatiflerine geçişi planlamaya başlamanız gerekir. Bununla birlikte, bazı uygulamaların SDK dışı arayüzleri kullanmak için geçerli kullanım alanları olduğunu anlıyoruz. Uygulamanızdaki bir özellik için SDK dışı arayüz kullanmaya alternatif bulamıyorsanız yeni bir herkese açık API isteğinde bulunmalısınız.
Android 13'teki değişikliklerin listesi
Android 13'teki liste değişiklikleri aşağıdaki kategoriye girer:
Android 13'teki tüm SDK olmayan arayüzlerin tam listesi için aşağıdaki dosyayı indirin:
Dosya: hiddenapi-flags.csv
SHA-256 sağlaması: 233a277aa8ac475b6df61bffd95665d86aac6eb2ad187b90bf42a98f5f2a11a3
Android 13'te artık engellenen SDK olmayan arayüzler
Aşağıdaki kod kutusunda, Android 12'de (API düzeyi 31) desteklenmeyen ve Android 13'te (API düzeyi 33) engellenen tüm SDK dışı arayüzler listelenmektedir. Yani bu arayüzler max-target-s
listesinde yer alır. Bu nedenle, uygulamanız yalnızca Android 12'yi (API düzeyi 31) veya önceki sürümleri hedefliyorsa bu arayüzleri kullanabilir.
Amacımız, SDK dışı arayüzleri kısıtlamadan önce herkese açık alternatiflerin mevcut olmasını sağlamaktır. Uygulamanızın bu arayüzleri kullanmak için geçerli bir kullanım alanına sahip olabileceğini anlıyoruz. Uygulamanızın önceki bir sürümde kullandığı bir arayüz artık Android 13'te engelleniyorsa bu arayüz için yeni bir genel API isteğinde bulunmanız gerekir.
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.
Bu sayfadaki içerik ve kod örnekleri, İçerik Lisansı sayfasında açıklanan lisanslara tabidir. Java ve OpenJDK, Oracle ve/veya satış ortaklarının tescilli ticari markasıdır.
Son güncelleme tarihi: 2025-08-27 UTC.
[[["Anlaması kolay","easyToUnderstand","thumb-up"],["Sorunumu çözdü","solvedMyProblem","thumb-up"],["Diğer","otherUp","thumb-up"]],[["İhtiyacım olan bilgiler yok","missingTheInformationINeed","thumb-down"],["Çok karmaşık / çok fazla adım var","tooComplicatedTooManySteps","thumb-down"],["Güncel değil","outOfDate","thumb-down"],["Çeviri sorunu","translationIssue","thumb-down"],["Örnek veya kod sorunu","samplesCodeIssue","thumb-down"],["Diğer","otherDown","thumb-down"]],["Son güncelleme tarihi: 2025-08-27 UTC."],[],[],null,["Android 13 includes updated lists of restricted non-SDK\ninterfaces based on collaboration with Android developers and the latest\ninternal testing. Whenever possible, we make sure that public alternatives are\navailable before we restrict non-SDK interfaces.\n\nIf your app does not target Android 13, some of these changes\nmight not immediately affect you. However, while you can currently use some\nnon-SDK interfaces ([depending on your app's target API\nlevel](/guide/app-compatibility/restrictions-non-sdk-interfaces#list-names)),\nusing any non-SDK method or field always carries a high risk of breaking your\napp.\n\nIf you are unsure if your app uses non-SDK interfaces, you can [test your\napp](/guide/app-compatibility/restrictions-non-sdk-interfaces#test-for-non-sdk)\nto find out. If your app relies on non-SDK interfaces, you should begin planning\na migration to SDK alternatives. Nevertheless, we understand that some apps have\nvalid use cases for using non-SDK interfaces. If you cannot find an alternative\nto using a non-SDK interface for a feature in your app, you should [request a\nnew public API](/guide/app-compatibility/restrictions-non-sdk-interfaces#feature-request).\n\nList changes for Android 13\n\nThe list changes in Android 13 fall into the following category:\n\n- Non-SDK interfaces that were unsupported in Android 12 (API level 31) that are [blocked in Android 13](#new-blocked).\n\nFor a complete list of all non-SDK interfaces for Android 13, download the\nfollowing file:\n\nFile: [`hiddenapi-flags.csv`](https://dl.google.com/developers/android/tm/non-sdk/hiddenapi-flags.csv)\n\nSHA-256 checksum: `233a277aa8ac475b6df61bffd95665d86aac6eb2ad187b90bf42a98f5f2a11a3`\n\nNon-SDK interfaces that are now blocked in Android 13\n\nThe following code box lists all of the non-SDK interfaces that were unsupported\nin Android 12 (API level 31) that are blocked in Android 13 (API level 33). That\nis, these interfaces belong to the `max-target-s` list, so your app can only use\nthese interfaces if it targets Android 12 (API level 31) or lower.\n\nOur goal is to make sure that public alternatives are available before we\nrestrict non-SDK interfaces, and we understand that your app might have a valid\nuse case for using these interfaces. If an interface that your app uses in a\nprior version is now blocked in Android 13, you should [request a new public\nAPI](/guide/app-compatibility/restrictions-non-sdk-interfaces#feature-request)\nfor that interface. \n\n```\nLandroid/app/Activity;-\u003esetDisablePreviewScreenshots(Z)V # Use /reference/android/app/Activity#setRecentsScreenshotEnabled(boolean) instead.\nLandroid/os/PowerManager;-\u003eisLightDeviceIdleMode()Z # Use /reference/android/os/PowerManager#isDeviceLightIdleMode() instead.\nLandroid/os/Process;-\u003esetArgV0(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.\nLandroid/view/accessibility/AccessibilityInteractionClient;-\u003eclearCache(I)V # Use /reference/android/accessibilityservice/AccessibilityService#clearCache() instead.\n```"]]