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

Android 13, Android geliştiricileriyle yapılan ortak çalışmalara ve en son dahili testlere göre 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şikliklerden bazıları sizi hemen etkilemeyebilir. Bununla birlikte, şu anda bazı SDK dışı arayüzleri (uygulamanızın hedef API düzeyine bağlı olarak) kullanabilseniz de herhangi bir SDK olmayan yöntemi veya alanı kullanmak her zaman uygulamanızın bozulma riskini artırır.

Uygulamanızın SDK olmayan arayüzler kullanıp kullanmadığından emin değilseniz öğrenmek için uygulamanızı test edebilirsiniz. Uygulamanız SDK olmayan arayüzlere dayanıyorsa SDK alternatiflerine geçiş planlamaya başlamanız gerekir. Yine de, bazı uygulamaların SDK dışı arayüz kullanımıyla ilgili geçerli kullanım alanları olduğunun farkındayız. Uygulamanızdaki bir özellik için SDK olmayan arayüz kullanmaya alternatif bulamıyorsanız yeni bir herkese açık API isteğinde bulunmanız gerekir.

Android 13 için değişiklikleri listele

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

Android 13'te SDK olmayan 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 engellenmiş olan 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 olmayan arayüzler listelenmiştir. Yani bu arayüzler max-target-s listesinde yer alır. Bu nedenle uygulamanız, bu arayüzleri yalnızca Android 12 (API düzeyi 31) veya önceki sürümleri hedefliyorsa kullanabilir.

Amacımız, SDK dışı arayüzleri kısıtlamadan önce herkese açık alternatiflerin kullanılabilir olmasını sağlamaktır. Bu yüzden, uygulamanızın bu arayüzleri kullanmak için 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 bu arayüz için yeni bir herkese açık API istemeniz 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.