Android 13'te SDK dışı arayüz kısıtlamalarıyla ilgili güncellemeler

Android 13, Android geliştiricilerle yapılan ortak çalışmalara ve en son şirket içi testlere dayalı olarak kısıtlanmış SDK dışı arayüzlerin güncellenmiş listelerini içerir. Mümkün olduğunda, herkese açık alternatiflerin SDK dışı arayüzleri kısıtlamadan önce kullanıma sunuyoruz.

Uygulamanız Android 13'ü hedeflemiyorsa bu değişikliklerin bazıları sizi hemen etkilemeyebilir. Ancak şu anda bazı SDK dışı arayüzleri kullanabilseniz de (uygulamanızın hedef API düzeyine bağlı olarak) SDK dışı bir yöntem veya alanı kullanmak her zaman uygulamanızın bozulma riskini artırır.

Uygulamanızın SDK olmayan arayüz kullanıp kullanmadığından emin değilseniz uygulama öğrenin. Uygulamanız SDK dışı arayüz kullanıyorsa alternatiflerine geçiş yaptık. Bununla birlikte, bazı uygulamaların SDK dışı arayüzleri kullanmanın geçerli kullanım alanları olduğunu biliyoruz. Uygulamanızdaki bir özellik için SDK dışı arayüz kullanmanın alternatifini bulamıyorsanız yeni bir herkese açık API isteğinde bulunmanız gerekir.

Android 13'teki değişikliklerin listesi

Android 13'teki liste değişiklikleri şu kategoridedir:

Android 13'teki tüm SDK dışı arayüzlerin tam listesi için şu dosyayı indirin: şu dosyayı seçin:

Dosya: hiddenapi-flags.csv

SHA-256 sağlama: 233a277aa8ac475b6df61bffd95665d86aac6eb2ad187b90bf42a98f5f2a11a3

Android 13'te artık engellenen SDK dışı arayüzler

Aşağıdaki kod kutusunda, desteklenmeyen tüm SDK dışı arayüzler listelenmektedir Android 13'te (API düzeyi 33) engellenenler Yani bu arayüzler max-target-s listesine aittir. Bu nedenle, uygulamanız yalnızca Android 12 (API düzeyi 31) veya önceki sürümleri hedefliyorsa bu arayüzleri kullanabilir.

Hedefimiz, SDK dışı arayüzleri kısıtlamadan önce herkese açık alternatiflerin kullanılabildiğinden emin olmaktır. Uygulamanızda bu arayüzleri kullanmaya yönelik geçerli bir kullanım alanı olabileceğinin farkındayız. Uygulamanızın önceki bir sürümde kullandığı bir arayüz artık Android 13'te engellenmişse söz konusu arayüz için yeni bir herkese açık 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.