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

Android 13, Android geliştiricileriyle yapılan ortak çalışmaya ve en son dahili testlere dayanarak kısıtlanmış SDK dışı arayüzlerin güncellenmiş listelerini içerir. Mümkün olduğunda SDK dışı arayüzleri kısıtlamadan önce herkese açık alternatiflerin kullanılabildiğinden emin oluruz.

Uygulamanız Android 13'ü hedeflemiyorsa bu değişikliklerden 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 öğrenmek için uygulamanızı test edebilirsiniz. Uygulamanız SDK dışı arayüzleri kullanıyorsa SDK alternatiflerine geçiş planlamaya başlamanız gerekir. 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'te değişiklikleri listeleme

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

Android 13 için SDK dışı tüm 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 dışı 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 olmayan arayüzler listelenmektedir. 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.