Önceki sürümlerde olduğu gibi Android 13 de uygulamanızı etkileyebilecek davranış değişiklikleri içerir. Aşağıdaki davranış değişiklikleri yalnızca Android 13 veya sonraki sürümleri hedefleyen uygulamalar için geçerlidir. Uygulamanız Android 13 veya sonraki bir sürümü hedefliyorsa uygun durumlarda bu davranışları doğru bir şekilde desteklemek için uygulamanızı değiştirmeniz gerekir.
Android 13 üzerinde çalışan tüm uygulamaları etkileyen davranış değişiklikleri listesini de incelemeyi unutmayın.
Gizlilik
Bildirim izni, ön plan hizmetinin görünümünü etkiler
Kullanıcı bildirim iznini reddederse bildirim çekmecesinde ön plan hizmetleriyle ilgili bildirimleri görmez. Ancak kullanıcılar, bildirim izninin verilip verilmediğinden bağımsız olarak Görev Yöneticisi'nde ön plan hizmetleriyle ilgili bildirimleri görmeye devam eder.
Yakındaki kablosuz cihazlar için yeni çalışma zamanında istenen izin
Android'in önceki sürümlerinde, kullanıcının bazı yaygın kablosuz kullanım alanlarını tamamlaması için uygulamanıza ACCESS_FINE_LOCATION
izni vermesi gerekir.
Kullanıcıların konum izinlerini kablosuz bağlantı işleviyle ilişkilendirmesi zor olduğundan, Android 13 (API düzeyi 33), cihazın yakındaki erişim noktalarıyla olan bağlantılarını kablosuz ağ üzerinden yöneten uygulamalar için NEARBY_DEVICES
izin grubunda çalışma zamanı iznini ekler. Bu izin (NEARBY_WIFI_DEVICES
), aşağıdakiler gibi kablosuz bağlantı kullanım alanlarını karşılar:
- Yakındaki cihazları (ör. yazıcılar veya medya yayınlama cihazları) bulabilir veya bu cihazlara bağlanabilirsiniz.
Bu iş akışı, uygulamanızın aşağıdaki tür görevleri gerçekleştirmesini sağlar:
- AP bilgilerini bant dışında (ör. BDE aracılığıyla) alma.
- Kablosuz ağ duyarlılığı üzerinden cihazları keşfedip bunlara bağlanın ve yalnızca yerel hotspot'u kullanarak bağlanın.
- Kablosuz Doğrudan Bağlantı üzerinden cihazları keşfedip bağlanın.
- Araba veya akıllı ev cihazı gibi bilinen bir SSID'ye bağlantı başlatın.
- Yalnızca yerel bir hotspot başlatın.
- Yakındaki Wi-Fi duyarlı cihazlara kadar menzil gösterir.
Uygulamanız Kablosuz API'lerden fiziksel konum bilgisi almadığı sürece, Android 13 veya sonraki bir sürümü hedeflerken ve Wi-Fi API'lerini kullanırken ACCESS_FINE_LOCATION
yerine NEARBY_WIFI_DEVICES
isteğinde bulunun. NEARBY_WIFI_DEVICES
iznini beyan ederken, uygulamanızın hiçbir zaman kablosuz API'lerden fiziksel konum bilgisi elde etmediğini kesinlikle iddia edin. Bunun için android:usesPermissionFlags
özelliğini neverForLocation
olarak ayarlayın. Bu işlem, Bluetooth cihaz bilgilerinin konum için hiçbir zaman kullanılmadığını belirttiğinizde Android 12 (API düzeyi 31) ve sonraki sürümlerde yaptığınız işleme benzer.
Yakındaki kablosuz cihazlara erişim için izin isteme hakkında daha fazla bilgi edinin.
Ayrıntılı medya izinleri
READ_MEDIA_AUDIO
iznini istediğinizde kullanıcının gördüğü sistem izinleri iletişim kutusu.Uygulamanız Android 13 veya sonraki bir sürümü hedefliyorsa ve diğer uygulamaların oluşturduğu medya dosyalarına erişmesi gerekiyorsa READ_EXTERNAL_STORAGE
izni yerine aşağıdaki ayrıntılı medya izinlerinden birini veya daha fazlasını istemelisiniz:
Medya türü | İsteme izni |
---|---|
Resimler ve fotoğraflar | READ_MEDIA_IMAGES |
Videolar | READ_MEDIA_VIDEO |
Ses dosyaları | READ_MEDIA_AUDIO |
Başka bir uygulamanın medya dosyalarına erişmeden önce, kullanıcının uygulamanıza uygun ayrıntılı medya izinlerini verdiğini doğrulayın.
Şekil 1'de READ_MEDIA_AUDIO
iznini isteyen bir uygulama gösterilmiştir.
Hem READ_MEDIA_IMAGES
hem de READ_MEDIA_VIDEO
iznini aynı anda isterseniz yalnızca bir sistem izni iletişim kutusu görünür.
Uygulamanıza daha önce READ_EXTERNAL_STORAGE
izni verildiyse istenen tüm READ_MEDIA_*
izinleri yeni sürüme geçerken otomatik olarak verilir. Yeni sürüme geçirilen izinleri incelemek için aşağıdaki ADB komutunu kullanabilirsiniz:
adb shell cmd appops get --uid PACKAGE_NAME
Arka planda vücut sensörlerini kullanmak için yeni izin gerekiyor
Android 13 ile nabız, sıcaklık ve kandaki oksijen yüzdesi gibi vücut sensörlerine "kullanımdayken" erişim kavramı geliyor. Bu erişim modeli, sistemin Android 10'da konum için (API düzeyi 29) kullanıma sunduğu modele çok benzer.
Uygulamanız Android 13'ü hedefliyorsa ve arka planda çalışırken vücut sensörü bilgilerine erişim gerektiriyorsa mevcut BODY_SENSORS
iznine ek olarak yeni BODY_SENSORS_BACKGROUND
iznini de beyan etmeniz gerekir.
Performans ve pil
Pil Kaynağı Kullanımı
Kullanıcı, Android 13'ü hedeflerken arka planda pil kullanımı için uygulamanızı "kısıtlanmış" duruma getirirse sistem, uygulama başka nedenlerle başlatılana kadar BOOT_COMPLETED
yayınını veya LOCKED_BOOT_COMPLETED
yayınını yayınlamaz.
Kullanıcı deneyimi
PlaybackState
kaynağından türetilen medya kontrolleri
Sistem, Android 13 (API düzeyi 33) ve sonraki sürümleri hedefleyen uygulamalar için medya kontrollerini PlaybackState
işlemlerinden türetir. Bu sayede sistem, telefonlar ve tablet cihazlar arasında teknik açıdan tutarlı olan daha zengin kontrol grupları gösterebilir ve medya kontrollerinin Android Auto ve Android TV gibi diğer Android platformlarında oluşturulma şekliyle uyumlu olur.
Şekil 2'de, bunun bir telefon ve tablet cihazda nasıl görüneceğine dair bir örnek gösterilmiştir.

Android 13'ten önce, sistem MediaStyle
bildirimindeki en fazla beş işlemi eklendikleri sırayla gösteriyordu.
Kompakt modda (örneğin, daraltılmış hızlı ayarlarda) setShowActionsInCompactView()
ile belirtilen en fazla üç işlem gösteriliyordu.
Android 13'ten itibaren sistem, aşağıdaki tabloda açıklandığı gibi PlaybackState
temelinde en fazla beş işlem düğmesi gösterir. Kompakt modda yalnızca ilk üç
işlem alanı görüntülenir. Android 13'ü hedeflemeyen veya PlaybackState
içermeyen uygulamalarda sistem, önceki paragrafta açıklandığı gibi MediaStyle
bildirimine eklenen Action
listesine dayalı kontrolleri gösterir.
Yer | İşlem | Ölçütler |
---|---|---|
1 | Oynat |
PlaybackState için mevcut eyalet şunlardan biridir:
|
Yükleme döner simgesi |
PlaybackState için mevcut eyalet şunlardan biridir:
|
|
Duraklat | PlaybackState öğesinin mevcut durumu yukarıdakilerin hiçbiri değil. |
|
2 | Önceki | PlaybackState işlem şunları içerir: ACTION_SKIP_TO_PREVIOUS . |
Özel | PlaybackState işlemleri ACTION_SKIP_TO_PREVIOUS içermez ve PlaybackState özel işlemleri henüz yerleştirilmemiş bir özel işlem içeriyor. |
|
Boş | PlaybackState ekstralar, SESSION_EXTRAS_KEY_SLOT_RESERVATION_SKIP_TO_PREV anahtarı için bir true boole değeri içeriyor. |
|
3 | Sonraki | PlaybackState işlem şunları içerir: ACTION_SKIP_TO_NEXT . |
Özel | PlaybackState işlemleri ACTION_SKIP_TO_NEXT içermez ve PlaybackState özel işlemleri henüz yerleştirilmemiş bir özel işlem içeriyor. |
|
Boş | PlaybackState ekstralar, SESSION_EXTRAS_KEY_SLOT_RESERVATION_SKIP_TO_NEXT anahtarı için bir true boole değeri içeriyor. |
|
4 | Özel | PlaybackState Özel işlemler, henüz yerleştirilmeyen bir özel işlem içeriyor. |
5 | Özel | PlaybackState Özel işlemler, henüz yerleştirilmeyen bir özel işlem içeriyor. |
Özel işlemler, PlaybackState
öğesine eklendikleri sırayla yerleştirilir.
Uygulama renk teması, Web Görünümü içeriğine otomatik olarak uygulanır
Android 13 (API düzeyi 33) veya sonraki sürümleri hedefleyen uygulamalar için setForceDark()
yöntemi kullanımdan kaldırılmıştır ve yöntem çağrıldığında hiçbir işlem yapılmaz.
Bunun yerine, WebView artık prefers-color-scheme
medya sorgusunu her zaman uygulamanın tema özelliğine (isLightTheme
) göre ayarlıyor. Diğer bir deyişle, isLightTheme
değeri true
ise veya belirtilmemişse prefers-color-scheme
light
olur; aksi takdirde dark
olur. Bu davranış, içerik destekliyorsa uygulama temasıyla eşleşecek şekilde web içeriğinin açık veya koyu stilinin otomatik olarak uygulanacağı anlamına gelir.
Çoğu uygulama için yeni davranış, uygun uygulama stillerini otomatik olarak uygulamalıdır. Ancak koyu mod ayarlarını manuel olarak kontrol ediyor olabileceğiniz durumları kontrol etmek için uygulamanızı test etmeniz gerekir.
Yine de uygulamanızın renk teması davranışını özelleştirmeniz gerekiyorsa bunun yerine setAlgorithmicDarkeningAllowed()
yöntemini kullanın. Önceki Android sürümleriyle geriye dönük uyumluluk için AndroidX'te eşdeğer setAlgorithmicDarkeningAllowed()
yöntemini kullanmanızı öneririz.
Uygulamanızın targetSdkVersion
ve tema ayarlarına bağlı olarak uygulamanızda hangi davranışı bekleyebileceğiniz hakkında daha fazla bilgi edinmek için söz konusu yöntemle ilgili dokümanlara bakın.
Google Play hizmetleri
Reklam kimliği için izin gerekiyor
Google Play Hizmetleri reklam kimliğini kullanan ve Android 13 (API düzeyi 33) ve sonraki sürümleri hedefleyen uygulamaların manifest dosyasında AD_ID
normal iznini aşağıdaki şekilde beyan etmesi gerekir:
<manifest ...>
<!-- Required only if your app targets Android 13 or higher. -->
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
<application ...>
...
</application>
</manifest>
Uygulamanız, Android 13 veya sonraki sürümleri hedeflerken bu izni beyan etmiyorsa reklam kimliği otomatik olarak kaldırılır ve sıfırlardan oluşan bir dizeyle değiştirilir.
Uygulamanız, kitaplık manifestinde AD_ID
iznini beyan eden SDK'lar kullanıyorsa izin varsayılan olarak uygulamanızın manifest dosyasıyla birleştirilir. Bu durumda, uygulamanızın manifest dosyasında izni beyan etmeniz gerekmez.
Daha fazla bilgi edinmek için Play Console Yardım sayfasındaki Reklam Kimliği bölümüne bakın.
Güncellenen SDK dışı kısıtlamalar
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ılabildiğinden emin oluyoruz.
Uygulamanız Android 13'ü hedeflemiyorsa bu değişikliklerden bazıları sizi hemen etkilemeyebilir. Bununla birlikte, şu anda bazı SDK dışı arayüzleri de (uygulamanızın hedef API düzeyine bağlı olarak) kullanabiliyor olsanız da SDK olmayan herhangi bir yöntemi veya alanı kullanmak her zaman uygulamanızın bozulma riskini taşı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üzleri kullanıyorsa SDK alternatiflerine geçiş planlamaya başlamanız gerekir. Yine de, bazı uygulamaların SDK dışı arayüzler için geçerli kullanım alanları olduğunu biliyoruz. Uygulamanızdaki bir özellik için SDK dışı arayüz kullanmaya alternatif bulamıyorsanız yeni bir herkese açık API istemeniz gerekir.
Android'in bu sürümündeki değişiklikler hakkında daha fazla bilgi edinmek için Android 13'teki SDK dışı arayüz kısıtlamalarında yapılan güncellemeler bölümüne göz atın. Genel olarak SDK olmayan arayüzler hakkında daha fazla bilgi edinmek için SDK olmayan arayüzlerle ilgili kısıtlamalar bölümünü inceleyin.