Davranış değişiklikleri: Android 13 veya sonraki bir sürümü hedefleyen uygulamalar

Önceki sürümlerde olduğu gibi Android 13 de uygulamasını indirin. Aşağıdaki davranış değişiklikleri yalnızca şu hedeflemeyi hedefleyen uygulamalar için geçerlidir: Android 13 veya sonraki sürümler Uygulamanız Android 13 veya sonraki sürümleri hedefliyorsa uygun olduğu durumlarda, uygulamanızı bu davranışları doğru şekilde destekleyecek şekilde değiştirebilirsiniz.

Ayrıca, tüm uygulamaları etkileyen davranış değişikliklerinin listesini de incelediğinizden emin olun. Android 13 yüklü olması gerekir.

Gizlilik

Bildirim izni, ön plan hizmetinin görünümünü etkiler

Kullanıcı bildirim izni, o sırada ön plan hizmetleriyle ilgili herhangi bir bildirim görmüyor bildirim çekmecesi. Ancak kullanıcılar ön plan hizmetleriyle ilgili bildirimleri görmeye devam ederler. Görev Yöneticisi, ve bildirim izni verilip verilmediğine bakmaksızın.

Yakındaki kablosuz cihazlar için yeni çalışma zamanında istenen izin

Android'in önceki sürümlerinde, kullanıcının uygulamanıza ACCESS_FINE_LOCATION Wi-Fi ile ilgili bazı yaygın kullanım alanlarını tamamlamak için izin alır.

Kullanıcıların konum izinlerini kablosuz ağ ile ilişkilendirmesi zor olduğu için zaten yüklü olduğu zaman Android 13 (API düzeyi 33), NEARBY_DEVICES bir cihazın yakındaki erişimlerle olan bağlantılarını yöneten uygulamalar için izin grubu kablosuz bağlantıdan yararlanırsınız. Bu izin, NEARBY_WIFI_DEVICES aşağıdakiler gibi kablosuz ağ kullanım alanlarına uygundur:

  • Yazıcı veya medya yayınlama cihazları gibi yakındaki cihazları bulun veya bunlara bağlanın. Bu iş akışı, uygulamanızın şu tür görevleri yerine getirmesini sağlar:
    • AP bilgilerini bant dışında (örneğin, BDE aracılığıyla) alın.
    • Kablosuz Aware üzerinden cihazları keşfedip bağlanın ve yalnızca yerel hotspot üzerinden bağlanın.
    • Kablosuz Doğrudan Bağlantı üzerinden cihazları keşfedip bağlanma.
  • Araba veya akıllı ev cihazı gibi bilinen bir SSID ile bağlantı başlatın.
  • Yalnızca yerel bir hotspot başlatın.
  • Yakındaki kablosuz ağa duyarlı cihazların yanı sıra.

Uygulamanız, kablosuz ağdan fiziksel konum bilgisi elde etmediği sürece API'ler için aşağıdaki işlemleri gerçekleştirirken ACCESS_FINE_LOCATION yerine NEARBY_WIFI_DEVICES isteyin: Android 13 veya sonraki bir sürümü hedeflemek ve Wi-Fi API'lerini kullanmak. Beyan ettiğiniz zaman NEARBY_WIFI_DEVICES iznini vermeniz durumunda, uygulamanızın hiçbir zaman Wi-Fi API'lerinden fiziksel konum bilgilerini türetir. Bunu yapmak için, android:usesPermissionFlags özelliğini neverForLocation ile ilişkilendirin. Bu süreç API düzeyi 31'de (API düzeyi 31) ve sonraki sürümlerde Bluetooth cihaz bilgilerinin hiçbir zaman konum'a dokunun.

Şu işlemler hakkında daha fazla bilgi edinin: yakındaki kablosuz cihazlara erişim izni isteme.

Ayrıntılı medya izinleri

İletişim kutusu için yukarıdan aşağıya doğru 2 düğme, İzin Ver ve İzin Verme'dir
  izin ver
Şekil 1. Kullanıcının şu işlemleri gerçekleştirdiğinde gördüğü sistem izinleri iletişim kutusu READ_MEDIA_AUDIO iznini istiyorsunuz.

Uygulamanız Android 13 veya sonraki bir sürümü hedefliyorsa ve gerekiyorsa diğer uygulamaların sahip olduğu medya dosyalarına erişme kullanıyorsanız yerine aşağıdaki ayrıntılı medya izinlerinden birini veya daha fazlasını isteyebilirsiniz: READ_EXTERNAL_STORAGE izin:

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 ilgili ayrıntılı medya izinlerini verir.

Şekil 1'de READ_MEDIA_AUDIO iznini isteyen bir uygulama gösterilmektedir.

Hem READ_MEDIA_IMAGES izni hem de Aynı anda READ_MEDIA_VIDEO izni, yalnızca bir sistem izni iletişim kutusu görüntülenir.

Uygulamanıza daha önce READ_EXTERNAL_STORAGE , istenen tüm READ_MEDIA_* izinleri verilir otomatik olarak eklenir. Aşağıdaki ADB komutunu kullanarak yeni sürüme geçirilen izinler:

adb shell cmd appops get --uid PACKAGE_NAME

Arka planda vücut sensörlerini kullanmak için yeni izin gerekiyor

Android 13, "kullanımdayken" kavramını kullanıma sunuyor erişim: (nabız, sıcaklık ve kandaki oksijen yüzdesi gibi) vücut sensörleridir. Bu erişim modeli, sistemin konum için kullanıma sunduğu modele çok benzerdir. .

Uygulamanız Android 13'ü hedefliyorsa ve vücut sensörüne erişmesi gerekiyorsa arka planda çalışırken yeni bilgiler de bildirmeniz gerekir. BODY_SENSORS_BACKGROUND ve mevcut izinlere ek olarak BODY_SENSORS izni gerekir.

Performans ve pil

Pil Kaynağı Kullanımı

Kullanıcı, uygulamanızı "Kısıtlanmış" durum: arka planda pil kullanımı uygulamanız Android 13'ü hedeflese de sistem BOOT_COMPLETED yayını veya LOCKED_BOOT_COMPLETED yayını, uygulamasının başka nedenlerle başlatıldığı anlamına gelir.

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 şuradan medya kontrolleri: PlaybackState işlemleri. Bu kontrol panelleri gösterebildiğimiz için sisteme, telefon ve tablet cihazları arasında tutarlılık sağlıyor ve ayrıca Android Auto ve Android Auto gibi diğer Android platformlarında Android TV.

Şekil 2'de bunun bir telefon ve tablette nasıl görüneceği gösterilmektedir. tıklayın.

Telefon ve tabletlerde nasıl göründükleri konusunda medya denetimleri
            düğmelerin nasıl görünebileceğini gösteren örnek bir parça örneği kullanarak
Şekil 2: Telefon ve tablet cihazlardaki medya kontrolleri

Sistem, Android 13'ten önce MediaStyle bölümünden en fazla beş işlem gösteriyordu. bildirimi eklendiği sırayla görürsünüz. Kompakt modda (örneğin, daraltılmış hızlı ayarlarda) setShowActionsInCompactView() ile belirtilen üç işlem gösterilmişti.

Sistem, Android 13'ten itibaren modele göre beş adede kadar işlem düğmesi gösteriyor. PlaybackState üzerinde, aşağıdaki tabloda açıklandığı şekildedir. Kompakt modda, yalnızca ilk üçü işlem alanları gösterilir. Android 13 veya sonraki sürümleri hedeflemeyen uygulamalar için bir PlaybackState içermeyen kontrollerle sistem, Action listesi, MediaStyle bildirimine önceki paragrafı.

Alan İşlem Ölçütler
1 Oynat PlaybackState bilgisinin mevcut eyaleti aşağıdakilerden biridir:
  • STATE_NONE
  • STATE_STOPPED
  • STATE_PAUSED
  • STATE_ERROR
Yükleme döner simgesi PlaybackState bilgisinin mevcut eyaleti aşağıdakilerden biridir:
  • STATE_CONNECTING
  • STATE_BUFFERING
Duraklat PlaybackState bölgesinin mevcut eyaleti yukarıdakilerin hiçbirinden farklıdır.
2 Önceki PlaybackState işlem ACTION_SKIP_TO_PREVIOUS içeriyor.
Özel PlaybackState işlemleri ACTION_SKIP_TO_PREVIOUS içermiyor ve PlaybackState özel işlemi henüz uygulanmamış bir özel işlem içeriyor.
Boş PlaybackState ekstralar, SESSION_EXTRAS_KEY_SLOT_RESERVATION_SKIP_TO_PREV anahtarı için true boole değeri içerir.
3 Sonraki PlaybackState işlem ACTION_SKIP_TO_NEXT içeriyor.
Özel PlaybackState işlemleri ACTION_SKIP_TO_NEXT içermiyor ve PlaybackState özel işlemi henüz uygulanmamış bir özel işlem içeriyor.
Boş PlaybackState ekstralar, SESSION_EXTRAS_KEY_SLOT_RESERVATION_SKIP_TO_NEXT anahtarı için true boole değeri içerir.
4 Özel PlaybackState özel işlemi henüz yerleştirilmemiş bir özel işlem içeriyor.
5 Özel PlaybackState özel işlemi henüz yerleştirilmemiş bir özel işlem içeriyor.

Özel işlemler PlaybackState

Uygulama rengi teması, WebView içeriğine otomatik olarak uygulanır

Android 13 (API düzeyi 33) veya sonraki sürümleri hedefleyen uygulamalar için setForceDark() yönteminin desteği sonlandırıldığından, yöntem çağrılırsa işlem geçersiz olur.

Bunun yerine WebView artık her zaman uygulamanın tema özelliğine göre prefers-color-scheme medya sorgusu isLightTheme Başka kelimeler, isLightTheme true ise veya belirtilmezse prefers-color-scheme olur light; Aksi takdirde, dark olacaktır. Bu davranış, web içeriğinin açık veya koyu stil, içerikler bunu destekliyor.

Çoğu uygulama için yeni davranış, uygun uygulama stillerini uygulamalıdır Ancak yine de uygulamanızı test ederek size kötü amaçlı yazılım koyu mod ayarlarını manuel olarak kontrol ediyor olabilir.

Uygulamanızın renk teması davranışını yine de özelleştirmeniz gerekiyorsa setAlgorithmicDarkeningAllowed() yöntemini kullanın. Önceki Android sürümleriyle geriye dönük uyumluluk için eşdeğeri setAlgorithmicDarkeningAllowed() yöntemidir.

Hangi davranışı uygulayabileceğiniz hakkında daha fazla bilgi edinmek için söz konusu yöntemin belgelerine bakın uygulamanıza bağlı olarak targetSdkVersion ve tema Ayarlar'da devre dışı bırakabilirsiniz.

Bağlantı

BluetoothAdapter#enable() ve BluetoothAdapter#disable() desteği sonlandırıldı

Android 13 (API düzeyi 33) veya sonraki sürümleri hedefleyen uygulamalar için BluetoothAdapter#enable() ve BluetoothAdapter#disable() yöntemlerinin desteği her zaman sonlandırılmıştır iade false.

Aşağıdaki uygulama türleri bu değişikliklerden muaftır:

  • Cihaz Sahibi uygulamaları
  • Profil Sahibi uygulamaları
  • Sistem uygulamaları

Google Play hizmetleri

Reklam kimliği için izin gerekiyor

Google Play Hizmetleri'nde reklamları kullanan uygulamalar ID ve Android 13 (API düzeyi 33) ve sonraki sürümleri hedeflemelidir Uygulamasında AD_ID normal iznini beyan etmesi aşağıdaki gibi bir manifest dosyası oluşturun:

<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 etmezse reklam kimliği otomatik olarak kaldırılır ve yerine bir dize anlamına gelir.

Uygulamanız, kitaplıkta AD_ID iznini beyan eden SDK'lar kullanıyorsa manifest dosyasıyla birleştirilirse bu izin, uygulamanızın manifest dosyasıyla varsayılandır. Bu durumda, uygulamanızın alt bölümünde izni beyan etmeniz gerekmez manfiest dosyanıza ekleyin.

Daha fazla bilgi için Reklamcılık kimliği inceleyebilirsiniz.

SDK dışı kısıtlamalar güncellendi

Android 13, SDK dışı kısıtlanmış öğelerin güncel listelerini içerir Android geliştiricileriyle ortak çalışmaya dayalı arayüzler ve en yeni dahili test. 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şikliklerden bazıları sizi hemen etkilemeyebilir. Ancak şu anda SDK olmayan arayüzler (uygulamanızın hedef API'sine bağlı olarak) düzeyi) tıklayın. SDK dışı bir yöntem veya alan kullanmak her zaman uygulamasını indirin.

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ı uygulamalarda SDK dışı arayüzler için geçerli kullanım alanları. Alternatif bir alternatif bulamazsanız Uygulamanızdaki bir özellik için SDK olmayan arayüz kullanmak istiyorsanız yeni genel API.

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ı. SDK dışı arayüzler hakkında genel olarak daha fazla bilgi edinmek için SDK dışı arayüzler hakkında daha fazla bilgi edinin. bilgi edinin.