Uyumluluk çerçevesiyle ilgili değişiklikler (Android?)

Şekil 1. Geliştirici seçeneklerindeki Uygulama Uyumluluğu Değişiklikleri ekranında, etkinleştirip devre dışı bırakabileceğiniz değişiklikler listelenir.

Bu sayfada, uyumluluğun parçası olan her bir davranış değişikliği açıklanmaktadır çerçevesini kullanabilirsiniz. Bu listeyi geliştirici seçeneklerini ve ADB komutlarını kullanarak Android 12'yi desteklemeye ve hedeflemeye hazırlanırken uygulamanızı test edip hata ayıklayın.

Uyumluluk çerçevesi araçlarını kullanarak yapabileceğiniz bazı işlemler şunlardır:

  • Hedeflenen değişiklikleri, uygulamanın ayarını değiştirmeden targetSdkVersion değerleridir. Belirli öğeleri etkinleştirmeye zorlamak için mevcut uygulamanız üzerindeki etkisini değerlendirmek için hedeflenmiş davranış değişikliklerini kullanın.
  • Testinizde yalnızca belirli değişikliklere odaklanın. Paydaşların beklentilerini Aynı anda hedeflenen tüm değişiklikleri ele almak isterseniz, açma/kapatma anahtarları tüm bunları devre dışı bırakmanıza test etmek istediklerinizin dışında hedeflenen değişiklikler içeriyor.
  • Adb üzerinden açma/kapatma düğmelerini yönetme. Adb komutlarını kullanarak otomatik testinizdeki açılabilir değişiklikleri etkinleştirin ve devre dışı bırakın bahsedeceğim.
  • Standart değişiklik kimliklerini kullanarak daha hızlı hata ayıklayın. Açma/kapatma düğmeli değişikliklerin her birinin, günlük çıkışında temel nedeni hızlıca hata ayıklamanıza olanak tanıyan benzersiz bir kimliği ve adı vardır.

Bu kullanım alanlarının her birinde araçların kullanımıyla ilgili ayrıntılı bilgi için Uyumluluk çerçevesi araçları.

Uyumluluk çerçevesine dahil edilen davranış değişiklikleri

Bu bölümdeki listede, Android 12'deki uyumluluk çerçevesine dahil edilen her davranış değişikliği açıklanmaktadır.

Değişiklik listesini Varsayılan Durum'a göre filtreleyebilirsiniz.

Android 12'deki uyumluluk çerçevesine eklenen davranış değişiklikleri

ALWAYS_SANDBOX_DISPLAY_APIS

Değişiklik Kimliği: 185004937
Varsayılan Durum: Tüm uygulamalar için devre dışıdır.

Etkinleştirildiğinde, pencereleme modundan bağımsız olarak bir pakete Display API korumalı alanını uygular. Görüntülü Reklam Ağı API'leri her zaman uygulama sınırlarını sağlar.

Bu değişiklik hakkında daha fazla bilgi edinmek için Android 12'deki bölüme bakın. hakkındaki davranış değişiklikleri sayfası Desteği sonlandırılan yöntemleri görüntüleyin.

AUTOFILL_NON_TEXT_REQUIRES_ON_RECEIVE_CONTENT_LISTENER

Değişiklik Kimliği: 163400105
Varsayılan Durum: Android 12 (API düzeyi 32) veya sonraki sürümleri hedefleyen uygulamalar için etkinleştirilir.

Android 12'den itibaren platform, artırılmış otomatik doldurma özelliğini kullanarak metin dışı öneriler (resimler gibi) sunabilir. çerçevesi (otomatik doldurma hizmetleri bölümüne bakın). Bir uygulamanın bu önerileri işleyebilmesi için normalde OnReceiveContentListener API'yi uygulaması gerekir.

Daha önce InputConnection.commitContent(InputContentInfo, int, Bundle) OnReceiveContentListener henüz uygulama tarafından uygulanmamışsa bu API'yi yedek olarak yeniden kullanırız. Bu yedek yalnızca şurada etkinleştirilebilir: Android 12 (API düzeyi 31). Bu değişiklik kimliği, yedeği devre dışı bırakır. Android 12 (API düzeyi 32) ve sonraki sürümleri hedefleyen uygulamalar OnReceiveContentListener API'yi kullanarak metin dışı önerileri kabul edin.

BLOCK_FLAG_SLIPPERY

Değişiklik Kimliği: 157929241
Varsayılan Durum: Tüm uygulamalar için etkindir.

Android 12 (API düzeyi 31) çalıştıran uygulamalar için FLAG_SLIPPERY uygulamadaki herhangi bir pencereyle kullanılıyor. Bu işaretin büyük olasılıkla yalnızca sistem bileşenleri tarafından kullanılmasını bekliyoruz. Çünkü desteklenmeyen alana sahip olmalıdır. Bu durumda, video kısıtlanır.

BLOCK_GPS_STATUS_USAGE

Değişiklik Kimliği: 144027538
Varsayılan Durum: Android 12 (API düzeyi 31) veya sonraki sürümleri hedefleyen uygulamalar için etkindir.

Android 12 (API düzeyi 31) ve sonraki sürümleri hedefleyen uygulamalar için GpsStatus API kullanımı, GnssStatus API'leriyle değiştirilmelidir.

BLOCK_IMMUTABLE_PENDING_INTENTS

Değişiklik Kimliği: 171317480
Varsayılan Durum: Android 12 (API düzeyi 31) veya sonraki sürümleri hedefleyen uygulamalar için etkindir.

Android 12 (API düzeyi 31) ve sonraki sürümleri hedefleyen uygulamalarda, konum API'lerine iletilen PendingIntent değiştirilemeyen nesneler IllegalArgumentException.

BLOCK_PENDING_INTENT_SYSTEM_API_USAGE

Değişiklik Kimliği: 169887240
Varsayılan Durum: Android 12 (API düzeyi 31) veya sonraki sürümleri hedefleyen uygulamalar için etkinleştirilir.

LocationRequest sistem API'leri, Android 12 (API düzeyi 31) ve sonraki sürümleri hedefleyen uygulamalar için PendingIntent ile kullanılamaz konum istekleri.

BLOCK_UNTRUSTED_TOUCHES

Değişiklik Kimliği: 158002302
Varsayılan Durum: Tüm uygulamalar için etkindir.

Android 12, sistem güvenliğini ve iyi bir kullanıcı deneyimini korumak için uygulamaların dokunma etkinliklerini tüketmesini engeller Burada yer paylaşımı, uygulamayı güvenli olmayan bir şekilde engeller.

Bu değişiklik hakkında daha fazla bilgi edinmek için Güvenilir olmayan dokunma etkinlikleri engellenir başlıklı makaleyi inceleyin.

CALL_ACTIVITY_RESULT_BEFORE_RESUME

Değişiklik Kimliği: 78294732
Varsayılan Durum: Android 12 (API düzeyi 32) veya sonraki sürümleri hedefleyen uygulamalar için etkindir.

Android 12 (API düzeyi 32) ve sonraki sürümleri hedefleyen uygulamalarda, bir etkinliğin devam etmeden hemen önce etkinlik sonucunu almasını sağlamak için etkinlik sonucunun yaşam döngüsünü düzeltir.

CAMERA_MIC_INDICATORS_NOT_PRESENT

Değişiklik Kimliği: 162547999
Varsayılan Durum: Tüm uygulamalar için devre dışıdır.

Bu cihazın kamera ve mikrofon göstergelerini desteklediğini belirtir. Şu durumda false olacak: çünkü CompatChanges#isChangeEnabled yöntemi, Değişiklik Kimliği yoksa true değerini döndürür.

CANNOT_INSTALL_WITH_BAD_PERMISSION_GROUPS

Değişiklik Kimliği: 146211400
Varsayılan Durum: Android 12 (API düzeyi 32) veya sonraki sürümleri hedefleyen uygulamalar için etkindir.

Android 12 (API düzeyi 32) ve sonraki sürümleri hedefleyen uygulamalar için paket yöneticisi, hatalı biçimlendirilmiş izin grupları varsa paket yüklemez. İzin grupları yalnızca sertifika paylaşan uygulamalar arasında paylaşılmalıdır. Bir izin bir gruba aitse bu grup da tanımlanmalıdır.

CHANGE_ID_AUTH_STATE_DENIED

Değişiklik Kimliği: 181350407
Varsayılan Durum: Android 12 (API düzeyi 31) veya sonraki sürümleri hedefleyen uygulamalar için etkindir.

Android 12 (API düzeyi 31) ve sonraki sürümleri hedefleyen istemci uygulamaları, izin reddedilmiş durumdayken bir nano uygulamaya mesaj göndermeye çalıştıklarında SecurityException hatası alır.

CHANGE_ID_SAMPLING_RATE_SENSORS_PERMISSION

Değişiklik Kimliği: 136069189
Varsayılan Durum: Android 12 (API düzeyi 31) veya sonraki sürümleri hedefleyen uygulamalar için etkinleştirilir.

Android 12 (API düzeyi 31) ve sonraki sürümleri hedefleyen uygulamalarda, HIGH_SAMPLING_RATE_SENSORS izni olmadığında, hata ayıklama modunda çalıştırıldığında ve 200 Hz'den daha hızlı örnekleme hızları istendiğinde SecurityException hatası atılır.

DELIVER_HISTORICAL_LOCATIONS

Değişiklik Kimliği: 73144566
Varsayılan Durum: Android 12 (API düzeyi 31) veya sonraki sürümleri hedefleyen uygulamalar için etkindir.

Android 12 (API düzeyi 31) ve sonraki sürümleri hedefleyen uygulamalarda, konum istemcileri bazı durumlarda geçmiş konumları (mevcut zamandan önce) alabilir.

DISPLAY_INFO_NR_ADVANCED_SUPPORTED

Değişiklik Kimliği: 181658987
Varsayılan Durum: Android 12 (API düzeyi 31) veya sonraki sürümleri hedefleyen uygulamalar için etkinleştirilir.

Android 12 (API düzeyi 31) ve sonraki sürümleri hedefleyen uygulamalar için TelephonyDisplayInfo'teki değişikliklerle ilgili geriye dönük uyumluluk sağlar.

DISPLAY_MODE_RETURNS_PHYSICAL_REFRESH_RATE

Değişiklik Kimliği: 170503758
Varsayılan Durum: Android 12 (API düzeyi 31) veya sonraki sürümleri hedefleyen uygulamalar için etkinleştirilir.

Android 12 (API düzeyi 31) ve sonraki sürümleri hedefleyen uygulamalarda platform, daha tercih edilirse (örneğin, uygulama Surface.setFrameRate(float, int) çağrısı yaptıysa) bir uygulamanın kare hızını yenileme hızının bir bölmecine düşürebilir. Uygulamalar, sınırlandırılmış kare hızında Choreographer.postFrameCallback(Choreographer.FrameCallback) geri çağırma ve geri basınç deneyimler. Uygulamalar, ekran yenileme hızını öğrenmek için Display.getRefreshRate() ve Display.Mode.getRefreshRate() işlevlerini kullanır. Display.getRefreshRate(), uygulamaların kare hızını doğru şekilde ayarlayabilmesi için her zaman fiziksel ekran yenileme hızını değil, uygulama kare hızını döndürür. Display.Mode.getRefreshRate(), önceki bir sürüme derlenirse uygulama kare hızını, Android 12'den (API düzeyi 31) itibaren ise fiziksel ekran yenileme hızını döndürür.

DOWNSCALED

Değişiklik Kimliği: 168419799
Varsayılan Durum: Tüm uygulamalar için devre dışıdır.

Bu değişiklik, uygulama başına arabellek boyutunu küçültmeyle ilgili tüm değişikliklerin kapısını açan bir değişikliktir. Bu değişikliği etkinleştirmek, aşağıdaki ölçeklendirme faktörlerinin uygulanmasına olanak tanır:

Bir uygulama paketi için bu değişiklik etkinleştirildiğinde uygulama zorla en yüksek, etkinleştirilen ölçeklendirme faktörüne göre yeniden boyutlandırıldı. Örneğin, %80 hem% 80 hem de %70 (DOWNSCALE_80 ve DOWNSCALE_70) etkin.

DOWNSCALE_30

Değişiklik Kimliği: 189970040
Varsayılan Durum: Tüm uygulamalar için devre dışıdır.

DOWNSCALED aynı zamanda olduğunda etkinleştirilirse bir paket için bu değişikliğin etkinleştirilmesi, uygulamayı ve dikey ve yatay boyutların% 30'unun daha yüksek çözünürlüğe sahip olmalıdır.

DOWNSCALE_35

Değişiklik Kimliği: 189969749
Varsayılan Durum: Tüm uygulamalar için devre dışıdır.

DOWNSCALED de etkinleştirildiğinde, bir paket için bu değişikliğin etkinleştirilmesi, uygulamanın gerçek ekranın dikey ve yatay çözünürlüğünün %35'ine sahip bir ekranda çalıştığını varsaymasına neden olur.

DOWNSCALE_40

Değişiklik Kimliği: 189970038
Varsayılan Durum: Tüm uygulamalar için devre dışı.

DOWNSCALED aynı zamanda olduğunda etkinleştirilirse bir paket için bu değişikliğin etkinleştirilmesi, uygulamayı ve dikey ve yatay boyutların% 40'ının daha yüksek çözünürlüğe sahip olmalıdır.

DOWNSCALE_45

Değişiklik Kimliği: 189969782
Varsayılan Durum: Tüm uygulamalar için devre dışı.

DOWNSCALED aynı zamanda olduğunda etkinleştirilirse bir paket için bu değişikliğin etkinleştirilmesi, uygulamayı ve dikey ve yatay boyutların% 45'ini daha yüksek çözünürlüğe sahip olmalıdır.

DOWNSCALE_50

Değişiklik Kimliği: 176926741
Varsayılan Durum: Tüm uygulamalar için devre dışıdır.

DOWNSCALED aynı zamanda olduğunda etkinleştirilirse bir paket için bu değişikliğin etkinleştirilmesi, uygulamayı %50'si dikey ve yatay daha yüksek çözünürlüğe sahip olmalıdır.

DOWNSCALE_55

Değişiklik Kimliği: 189970036
Varsayılan Durum: Tüm uygulamalar için devre dışıdır.

DOWNSCALED de etkinleştirildiğinde, bir paket için bu değişikliğin etkinleştirilmesi, uygulamanın gerçek ekranın dikey ve yatay çözünürlüğünün %55'ine sahip bir ekranda çalıştığını varsaymasına neden olur.

DOWNSCALE_60

Değişiklik Kimliği: 176926771
Varsayılan Durum: Tüm uygulamalar için devre dışıdır.

DOWNSCALED de etkinleştirildiğinde, bir paket için bu değişikliğin etkinleştirilmesi, uygulamanın gerçek ekranın dikey ve yatay çözünürlüğünün %60'ına sahip bir ekranda çalıştığını varsaymasına neden olur.

DOWNSCALE_65

Değişiklik Kimliği: 189969744
Varsayılan Durum: Tüm uygulamalar için devre dışıdır.

DOWNSCALED de etkinleştirildiğinde, bir paket için bu değişikliğin etkinleştirilmesi, uygulamanın gerçek ekranın dikey ve yatay çözünürlüğünün %65'ine sahip bir ekranda çalıştığını varsaymasına neden olur.

DOWNSCALE_70

Değişiklik Kimliği: 176926829
Varsayılan Durum: Tüm uygulamalar için devre dışıdır.

DOWNSCALED aynı zamanda olduğunda etkinleştirilirse bir paket için bu değişikliğin etkinleştirilmesi, uygulamayı ve dikey ve yatay boyutların% 70'ini daha yüksek çözünürlüğe sahip olmalıdır.

DOWNSCALE_75

Değişiklik Kimliği: 189969779
Varsayılan Durum: Tüm uygulamalar için devre dışıdır.

DOWNSCALED aynı zamanda olduğunda etkinleştirilirse bir paket için bu değişikliğin etkinleştirilmesi, uygulamayı ve dikey ve yatay boyutların% 75'ini daha yüksek çözünürlüğe sahip olmalıdır.

DOWNSCALE_80

Değişiklik Kimliği: 176926753
Varsayılan Durum: Tüm uygulamalar için devre dışıdır.

DOWNSCALED de etkinleştirildiğinde, bir paket için bu değişikliğin etkinleştirilmesi, uygulamanın gerçek ekranın dikey ve yatay çözünürlüğünün %80'ine sahip bir ekranda çalıştığını varsaymasına neden olur.

DOWNSCALE_85

Değişiklik Kimliği: 189969734
Varsayılan Durum: Tüm uygulamalar için devre dışıdır.

DOWNSCALED aynı zamanda olduğunda etkinleştirilirse bir paket için bu değişikliğin etkinleştirilmesi, uygulamayı %85 oranında dikey ve yatay daha yüksek çözünürlüğe sahip olmalıdır.

DOWNSCALE_90

Değişiklik Kimliği: 182811243
Varsayılan Durum: Tüm uygulamalar için devre dışıdır.

DOWNSCALED aynı zamanda olduğunda etkinleştirilirse bir paket için bu değişikliğin etkinleştirilmesi, uygulamayı %90'ının dikey ve yatay olduğu bir ekranda daha yüksek çözünürlüğe sahip olmalıdır.

DO_NOT_DOWNSCALE_TO_1080P_ON_TV

Değişiklik Kimliği: 157629738
Varsayılan Durum: Android 12 (API düzeyi 31) veya sonraki sürümleri hedefleyen uygulamalar için etkinleştirilir.

Android 12 (API düzeyi 31) ve sonraki sürümleri hedefleyen Android TV uygulamalarının, 1080p'den daha yüksek pencere boyutları da dahil olmak üzere tüm pencere boyutlarını işlemesi beklenir. Android'in önceki sürümlerini hedefleyen uygulamalar, Windows'da 1080p'den daha yüksek çözünürlükleri almaz. Bu nedenle, gerektiğinde Windows sürümleri 1080p'ye düşürülür.

DROP_CLOSE_SYSTEM_DIALOGS

Değişiklik Kimliği: 174664120
Varsayılan Durum: Tüm uygulamalar için etkindir.

ACTION_CLOSE_SYSTEM_DIALOGS, uygulamalarla ve sistemle etkileşimde bulunurken kullanıcıların daha iyi kontrol edebilmesini sağlamak için intent işlemi, Android 12'den itibaren kullanımdan kaldırılmıştır.

Bu değişiklik hakkında daha fazla bilgi edinmek için Uygulamalar sistem iletişim kutularını kapatamıyor başlıklı makaleyi inceleyin.

ENABLE_CHECKS_FOR_PRIVATE_FILES

Değişiklik Kimliği: 172100307
Varsayılan Durum: Android 12 (API düzeyi 31) veya sonraki sürümleri hedefleyen uygulamalar için etkinleştirilir.

Android 12 (API düzeyi 31) ve sonraki sürümleri hedefleyen uygulamalar, medya sağlayıcı kullanarak gizli dosya ekleyemez veya güncelleyemez.

ENABLE_DEFERRED_SCAN

Değişiklik Kimliği: 180326732
Varsayılan Durum: Android 12 (API düzeyi 31) veya sonraki sürümleri hedefleyen uygulamalar için etkinleştirilir.

MediaProvider#update() kapsamında tetiklenen taramayı ertelemek için bu seçeneği etkinleştirin.

ENABLE_GET_CALL_STATE_PERMISSION_PROTECTION

Değişiklik Kimliği: 157233955
Varsayılan Durum: Android 12 (API düzeyi 31) veya sonraki sürümleri hedefleyen uygulamalar için etkinleştirilir.

Android 12 (API düzeyi 31) ve sonraki sürümleri hedefleyen uygulamalar için TelecomManager#getCallState gibi sorgulayıcı ve çağrı durumu bildiren API'lerde READ_PHONE_STATE korumasını etkinleştirir TelephonyManager.getCallStateForSubscription() ve TelephonyCallback.CallStateListener.

ENABLE_GET_PHONE_ACCOUNT_PERMISSION_PROTECTION

Değişiklik Kimliği: 183407956
Varsayılan Durum: Android 12 (API düzeyi 31) veya sonraki sürümleri hedefleyen uygulamalar için etkinleştirilir.

Android 12 (API düzeyi 31) ve sonraki sürümleri hedefleyen uygulamalar için getPhoneAccount(PhoneAccountHandle)'te READ_PHONE_NUMBERS veya READ_PRIVILEGED_PHONE_STATE korumalarını etkinleştirir.

ENABLE_INCLUDE_ALL_VOLUMES

Değişiklik Kimliği: 182734110
Varsayılan Durum: Android 12 (API düzeyi 31) veya sonraki sürümleri hedefleyen uygulamalar için etkindir.

Yakın zamanda bağlantısı kaldırılan bir birimdeki dosyaların veritabanı satırlarını MediaProvider#query'e dahil etmek için bu seçeneği etkinleştirin.

ENABLE_RAW_MANAGE_EXTERNAL_STORAGE_ACCESS

Değişiklik Kimliği: 178209446
Varsayılan Durum: Android 12 (API düzeyi 31) veya sonraki sürümleri hedefleyen uygulamalar için etkinleştirilir.

Manifest.permission.MANAGE_EXTERNAL_STORAGE simgesinin bulunduğu uygulamalara izin vermek için bu seçeneği etkinleştirin ham harici depolama erişimi isteme izni.

ENFORCE_MINIMUM_WINDOW_ON_INEXACT_ALARMS

Değişiklik Kimliği: 185199076
Varsayılan Durum: Android 12 (API düzeyi 31) veya sonraki sürümleri hedefleyen uygulamalar için etkinleştirilir.

Android 12 (API düzeyi 31) ve sonraki sürümleri hedefleyen uygulamalar için tüm tam olmayan alarmların minimum aralık boyutuna sahip olması gerekir. Bu tahmini zaman aralığı birkaç dakikadır. Pratikte, tüm alarmları daha küçük pencereler tam alarmlarla aynıdır ve sağlanan karşılık gelen API'leri kullanmalıdır: setExact(int, long, PendingIntent) Belirtilen daha kısa aralıklara sahip hatalı alarmların aralıkları sistem tarafından uzar.

ENFORCE_NATIVE_SHARED_LIBRARY_DEPENDENCIES

Değişiklik Kimliği: 142191088
Varsayılan Durum: Android 12 (API düzeyi 31) veya sonraki sürümleri hedefleyen uygulamalar için etkinleştirilir.

Android 12 (API düzeyi 31) ve sonraki sürümleri hedefleyen uygulamaların, cihaz üreticisi tarafından AndroidManifest.xml içinde uses-native-library etiketi kullanılarak tanımlanır. Bağımlılıklardan herhangi biri karşılanamazsa (örneğin, bağımlılıklardan biri yoksa) paket yöneticisi uygulamayı yüklemez. Bağımlılık, etiketteki android:required özelliği kullanılarak isteğe bağlı olarak belirtilebilir. Bu durumda, bağımlılığın karşılanamaması yüklemeyi durdurmaz.

Yüklendikten sonra, bir uygulamaya yalnızca uygulama manifestinde belirtilen yerel paylaşılan kitaplıklar sağlanır. dlopen aranıyor açık Uygulama manifest'inde görünmeyen yerel bir paylaşılan kitaplık, cihazda gerçekten mevcut olsa bile başarısız olur.

ENFORCE_STRICT_QUERY_BUILDER

Değişiklik Kimliği: 143231523
Varsayılan Durum: Tüm uygulamalar için devre dışı.

Etkinleştirildiğinde SQLiteQueryBuilder tüm CalendarProvider2 sorgu seçimlerini kötü amaçlı bağımsız değişkenlere karşı doğrular.

FGS_BG_START_RESTRICTION_CHANGE_ID

Değişiklik Kimliği: 170668199
Varsayılan Durum: Android 12 (API düzeyi 31) veya sonraki sürümleri hedefleyen uygulamalar için etkinleştirilir.

Android 12 (API düzeyi 31) ve sonraki sürümleri hedefleyen uygulamalar için bu ayar, uygulamaların arka planda çalışırken ön plan hizmetlerini başlatabileceği zamanı kısıtlar.

FGS_START_EXCEPTION_CHANGE_ID

Değişiklik Kimliği: 174041399
Varsayılan Durum: Android 12 (API düzeyi 31) veya sonraki sürümleri hedefleyen uygulamalar için etkinleştirilir.

Android 12 (API düzeyi 31) ve sonraki sürümleri hedefleyen uygulamalarda, bir uygulama arka planda çalışırken ön plan hizmeti başlatmaya çalışırsa sistemin IllegalStateException atmasını sağlar.

FINISH_INPUT_NO_FALLBACK_CONNECTION

Değişiklik Kimliği: 156215187
Varsayılan Durum: Tüm uygulamalar için devre dışıdır.

Android 12 (API düzeyi 31) ve sonraki sürümleri hedefleyen uygulamalar için, cihaz şu anda InputConnection non-interactive.

Geçerli input method tarafından etkinleştirilirse geçerli giriş bağlantısı şu şekilde olur: Cihazlar etkileşimsiz hale geldiğinde finished.

Etkinleştirilmezse, cihazlar etkileşimli olmadığında geçerli giriş bağlantısı sessizce devre dışı bırakılır ve onFinishInput() ve onStartInput() çifti, cihaz tekrar etkileşimli hale geldiğinde gönderilir.

FORCE_DISABLE_HEVC_SUPPORT

Değişiklik Kimliği: 174227820
Varsayılan Durum: Tüm uygulamalar için devre dışıdır.

Bir uygulamanın, HEVC medya özelliğini desteklemesini zorla devre dışı bırakın. Uygulamalar, desteklenen medya özelliklerini manifest dosyasına koyabilirsiniz, ancak bu işaret bir uygulamayı HEVC'yi desteklediğinden medyaya erişirken kod dönüştürmeyi zorlar HEVC olarak kodlanır. Bu işaretin ayarlanması, işletim sistemi seviyesindeki varsayılanları geçersiz kılar kontrol edin. Varsayılan olarak devre dışıdır. Dolayısıyla, işletim sistemi varsayılan olarak öncelik sırasına koyduk. Hem bu bayrak hem de FORCE_ENABLE_HEVC_SUPPORT etkinleştirilir, işletim sistemi şunları yoksayar kullanın.

FORCE_ENABLE_HEVC_SUPPORT

Değişiklik Kimliği: 174228127
Varsayılan Durum: Tüm uygulamalar için devre dışıdır.

Bir uygulamanın HEVC medya özelliğini desteklemesini zorunlu kılma Uygulamalar, destekledikleri medya özelliklerini manifest dosyalarında belirtmelidir ancak bu işaret, bir uygulamayı HEVC'yi desteklemeye zorlamak için kullanılabilir. Böylece, HEVC'ye kodlanmış medyaya erişirken kod dönüştürme işlemi önlenebilir. Ayar Bu işaret, uygulamaların işletim sistemi düzeyindeki varsayılanları geçersiz kılar. Şu kullanıcı tarafından devre dışı bırakıldı: İşletim sistemi varsayılanları öncelikli olur. Hem bu işaret hem de FORCE_DISABLE_HEVC_SUPPORT etkinse işletim sistemi her iki işareti de yoksayar.

FORCE_NON_RESIZE_APP

Değişiklik Kimliği: 181136395
Varsayılan Durum: Tüm uygulamalar için devre dışıdır.

Uygulandığı paketlerin yeniden boyutlandırılamaz olmasını sağlar.

FORCE_RESIZE_APP

Değişiklik Kimliği: 174042936
Varsayılan Durum: Tüm uygulamalar için devre dışıdır.

Uygulandığı paketleri yeniden boyutlandırılabilir olmaya zorlar. Yalnızca tam ekran pencere modu modunda yeniden boyutlandırmaya izin ver ancak uygulamayı zorunlu kılmıyor tekrar boyutlandırılabilir çoklu pencere moduna geçirebilirsiniz.

HIDE_PROP_ICUBINARY_DATA_PATH

Değişiklik Kimliği: 171979766
Varsayılan Durum: Android 12 (API düzeyi 31) veya sonraki sürümleri hedefleyen uygulamalar için etkinleştirilir.

Android 12 (API düzeyi 31) ve sonraki sürümleri hedefleyen uygulamalar için android.icu.impl.ICUBinary.dataPath mülküne erişimi kaldırır.

IGNORE_ALLOW_BACKUP_IN_D2D

Değişiklik Kimliği: 183147249
Varsayılan Durum: Android 12 (API düzeyi 31) veya sonraki sürümleri hedefleyen uygulamalar için etkinleştirilir.

android:allowBackup, Android 12 (API düzeyi 31) ve sonraki sürümleri hedefleyen uygulamalarda cihazdan cihaza (D2D) taşıma işlemi sırasında yoksayılır.

IGNORE_FULL_BACKUP_CONTENT_IN_D2D

Değişiklik Kimliği: 180523564
Varsayılan Durum: Android 12 (API düzeyi 31) veya sonraki sürümleri hedefleyen uygulamalar için etkinleştirilir.

Android 12 (API düzeyi 31) ve sonraki sürümleri hedefleyen uygulamalar için android:fullBackupContent kullanılarak belirtilen dahil etme ve hariç tutma kuralları, cihazdan cihaza (D2D) aktarım sırasında yoksayılır.

IME_AUTOFILL_DEFAULT_SUPPORTED_LOCALES_IS_EMPTY

Değişiklik Kimliği: 169273070
Varsayılan Durum: Android 12 (API düzeyi 31) veya sonraki sürümleri hedefleyen uygulamalar için etkindir.

getSupportedLocales(), Android 12 (API düzeyi 31) ve sonraki sürümleri hedefleyen uygulamalar için artık geri dönüyor ayarlanmadığında varsayılan sistem yerel ayarı yerine boş bir yerel ayar listesi oluşturulur.

IS_BACKUP_SERVICE_ACTIVE_ENFORCE_PERMISSION_IN_SERVICE

Değişiklik Kimliği: 158482162
Varsayılan Durum: Android 12 (API düzeyi 31) veya sonraki sürümleri hedefleyen uygulamalar için etkinleştirilir.

Android 12 (API düzeyi 31) ve sonraki sürümleri hedefleyen uygulamalarda, isBackupServiceActive() için gereken BACKUP izni BackupManager'de istemci tarafında değil, servis tarafında uygulanır.

KEYSTORE_OPERATION_CREATION_MAY_FAIL

Değişiklik Kimliği: 169897160
Varsayılan Durum: Tüm uygulamalar için devre dışıdır.

Etkinleştirildiğinde, anahtar deposu işlemi oluşturma işlemi stratejisidir. Anahtar Deposu, kriptografi işlemlerinin oluşturulmasının her zaman başarılı olacağı varsayımı altında çalışırdı. Ancak KeyMint arka ucunda yalnızca sınırlı sayıda işlem yuvası vardır.

“Sonsuz” görünümü korumak için çalışma aralıklarını Anahtar deposu arka plan programı, aşağıdaki durumlarda en az kullanılan işlemleri ayıklar. uygun işlem aralığı yoktu. Bu nedenle, iyi işlemler erken sonlandırılabilir. Bu şekilde AndroidKeystore, hizmet reddi (DoS) ve istenmeyen canlı kilitlenme. Örneğin, güç yönetimi nedeniyle birden fazla uygulama aynı anda uyandı şifre işlemleri gerçekleştirmeyi denedikten sonra hiçbir ilerleme kaydedilmeden birbirinin operasyonlarını sonlandırmaya.

Kilitlenmelerden kurtulmak ve DoS girişimlerini caydırmak için budama stratejisini, kısa süreliğine az sayıda işlem yuvasını kullanan istemcileri tercih edecek şekilde değiştirdik. Sonuç olarak, 5 saniyeden fazla işlem yapmayın. Neredeyse her zaman hiçbir engel olmaksızın ortaya çıkmış olabilir. Dosya sistemi şifrelemeyle ilgili bazı işlemler, bu işlemleri bile kısaltabilir ancak bu durumlar son derece nadirdir. Yan olarak oluşturma işleminin etkisini ölçtüğünden, oluşturma işlemi artık başarısız olabilir istemcinin budama gücü mevcut olan anlamına gelir.

Budama stratejisi: Uygun bir aday bulmak için arayan ve mevcut her bir işlemin genel kalitesini hesaplarız. Malus, budama gücünün (arayan) veya budama direncinin (mevcut işlem) tersidir. Arayanın metni kısaltabilmesi için bundan daha yüksek bir malus değerine sahip bir işlem bulması gerekir. sahip. Budama stratejisi hakkında daha fazla bilgi için operation.rs'in uygulanmasına bakın. Android 11 (API düzeyi 30) ve önceki sürümlerde KeyStore2, ücretsiz bir işlem yuvası için Keystore daemon'ını yoklar. Android 11 (API düzeyi 30) ve önceki sürümleri hedefleyen uygulamalarda, kriptografik anahtar ve imzalama nesnesi başlatma işleminin her zaman başarılı olduğu görülebilir. Ancak işlemin tamamlanması daha uzun sürebilir. Tüm Android sürümleri, daha adil işlem aralığı planlamasından ve bir işlemi başarıyla tamamlama şansının artmasından yararlanır.

LOCK_DOWN_CLOSE_SYSTEM_DIALOGS

Değişiklik Kimliği: 174664365
Varsayılan Durum: Android 12 (API düzeyi 31) veya sonraki sürümleri hedefleyen uygulamalar için etkinleştirilir.

Intent.ACTION_CLOSE_SYSTEM_DIALOGS, Android 12 (API düzeyi 31) ve sonraki sürümleri hedefleyen uygulamalar için gönderilemez Uygulama android.permission.BROADCAST_CLOSE_SYSTEM_DIALOGS iznine de sahip değilse. Bunun #DROP_CLOSE_SYSTEM_DIALOGS uygulamasının daha kısıtlayıcı sürümü olduğunu unutmayın Uygulama Android 12 (API düzeyi 31) veya sonraki sürümleri hedeflemeye başladığında uygulamanın Intent.ACTION_CLOSE_SYSTEM_DIALOGS amacını göndermeyi durdurmasını bekler.

LOCK_DOWN_COLLAPSE_STATUS_BAR

Değişiklik Kimliği: 173031413
Varsayılan Durum: Android 12 (API düzeyi 31) veya sonraki sürümleri hedefleyen uygulamalar için etkinleştirilir.

Android 12 (API düzeyi 31) ve sonraki sürümleri hedefleyen uygulamalardaManifest.permission.STATUS_BAR güvenlik nedeniyle, durum çubuğu panellerinde gösterilebilir. Bu durum, kullanıcının kritik bildirimlere erişmesini engellemek için kötü amaçlı yazılımlar tarafından istismar ediliyordu.

LOW_POWER_EXCEPTIONS

Değişiklik Kimliği: 168936375
Varsayılan Durum: Android 12 (API düzeyi 31) veya sonraki sürümleri hedefleyen uygulamalar için etkindir.

Android 12 (API düzeyi 31) ve sonraki sürümleri hedefleyen uygulamalar için tüm LocationRequest nesnelerinin tümü düşük güç atışı olarak işaretlenmiş (çağrıda, düşük kaliteyi sessizce bırakmak yerine, arayan, LOCATION_HARDWARE iznine sahip değilse) bu talebin başka bir kısmını ele alacağız.

MISSING_EXPORTED_FLAG

Değişiklik Kimliği: 150232615
Varsayılan Durum: Android 12 (API düzeyi 31) veya sonraki sürümleri hedefleyen uygulamalar için etkinleştirilir.

Android 12 (API düzeyi 31) ve sonraki sürümleri hedefleyen uygulamalar için android:exported özelliğini kullanmanız gerekir.

Bu değişiklik hakkında daha fazla bilgi edinmek için Bileşenlerin daha güvenli şekilde dışa aktarılması başlıklı makaleyi inceleyin.

NATIVE_HEAP_POINTER_TAGGING_APP_ZYGOTE

Değişiklik Kimliği: 207557677
Varsayılan Durum: Android 12 (API düzeyi 32) veya sonraki sürümleri hedefleyen uygulamalar için etkinleştirilir.

Android 12 (API düzeyi 32) ve sonraki sürümleri hedefleyen uygulamalar için AppZygote işlemi ve alt öğelerindeki yerel yığın ayırmaları en önemli baytta sıfır dışında bir etiket kullanın.

Bu değişiklik hakkında daha fazla bilgi edinmek için Etiketli İşaretçiler bölümüne bakın.

NATIVE_HEAP_ZERO_INIT

Değişiklik Kimliği: 178038272
Varsayılan Durum: Tüm uygulamalar için devre dışıdır.

Yerel yığın bellek ayırmalarının otomatik olarak sıfır başlatılmasını etkinleştir.

NATIVE_MEMTAG_ASYNC

Değişiklik Kimliği: 135772972
Varsayılan Durum: Tüm uygulamalar için devre dışıdır.

Bu işlemde eşzamansız (ASYNC) bellek etiketi kontrolünü etkinleştirin. Bu işaret yalnızca ARM Bellek Etiketleme Uzantısı'nı (MTE) destekleyen donanımı etkiler.

NATIVE_MEMTAG_SYNC

Değişiklik Kimliği: 177438394
Varsayılan Durum: Tüm uygulamalar için devre dışıdır.

Bu işlemde eşzamanlı (SENKRONİZE) bellek etiketi kontrolünü etkinleştirir. Bu işaret yalnızca ARM'yi destekleyen donanımı etkiler Bellek Etiketleme Uzantısı (MTE). Hem NATIVE_MEMTAG_ASYNC hem de bu seçenek etkinleştirilirse bu seçeneğin MTE, SENKRONİZASYON modunda etkinleştirilir.

NEVER_SANDBOX_DISPLAY_APIS

Değişiklik Kimliği: 184838306
Varsayılan Durum: Tüm uygulamalar için devre dışıdır.

Etkinleştirildiğinde, Display API korumalı alanının bir posta kutusu veya SCM etkinliğine uygulanmasını engeller. Görüntülü Reklam Ağı API'leri, DisplayArea sınırları.

Bu değişiklik hakkında daha fazla bilgi için Android'deki bölüme bakın. hakkındaki 12 davranış değişikliği sayfası Desteği sonlandırılan yöntemleri görüntüleyin.

NOTIFICATION_CANCELLATION_REASONS

Değişiklik Kimliği: 175319604
Varsayılan Durum: Android 12 (API düzeyi 31) veya sonraki sürümleri hedefleyen uygulamalar için etkinleştirilir.

Bildirim dinleyicilerin yeni iptal nedenlerini daha ayrıntılı şekilde anlamasına olanak tanır.

NOTIFICATION_TRAMPOLINE_BLOCK

Değişiklik Kimliği: 167676448
Varsayılan Durum: Android 12 (API düzeyi 31) veya sonraki sürümleri hedefleyen uygulamalar için etkinleştirilir.

Android 12'yi hedefleyen uygulamalar, uygulama performansını ve kullanıcı deneyimini iyileştirmek için hizmetleri veya yayın alıcılarını kullanamaz. bildirim trambolinleri olarak kullanabilirsiniz.

Bu değişiklik hakkında daha fazla bilgi edinmek için Hizmetlerden veya yayın alıcılarından bildirim trambolinleri oluşturulamaz.

NULL_TELEPHONY_THROW_NO_CB

Değişiklik Kimliği: 182185642
Varsayılan Durum: Android 12 (API düzeyi 31) veya sonraki sürümleri hedefleyen uygulamalar için etkinleştirilir.

Mevcut işlemin hedef SDK sürümünün Android 12 (API düzeyi 31) veya sonraki bir sürüm olup olmadığını kontrol etmek için kullanılır.

Aşağıdaki yöntemler için geçerlidir:

OVERRIDE_MIN_ASPECT_RATIO

Değişiklik Kimliği: 174042980
Varsayılan Durum: Tüm uygulamalar için devre dışıdır.

Bu değişiklik, belirli bir minimum en boy oranını zorlayan tüm değişikliklerin koruyucusudur. Bu değişikliği etkinleştirmek, aşağıdaki minimum en boy oranlarının uygulanmasına olanak tanır:

Bir uygulama paketi için bu değişiklik etkinleştirildiğinde, uygulamanın manifest dosyasında belirtilen minimum en boy oranı, etkin olan en büyük olacak şekilde geçersiz kılınır uygulamanın manifest değeri daha yüksek değilse en boy oranı.

OVERRIDE_MIN_ASPECT_RATIO_LARGE

Değişiklik Kimliği: 180326787
Varsayılan Durum: Tüm uygulamalar için devre dışı.

OVERRIDE_MIN_ASPECT_RATIO de etkinleştirildiğinde, bir paket için bu değişikliği etkinleştirmek, etkinliğin minimum en boy oranını OVERRIDE_MIN_ASPECT_RATIO_LARGE_VALUE tarafından tanımlanan büyük bir değere ayarlar.

OVERRIDE_MIN_ASPECT_RATIO_MEDIUM

Değişiklik Kimliği: 180326845
Varsayılan Durum: Tüm uygulamalar için devre dışıdır.

OVERRIDE_MIN_ASPECT_RATIO de etkinleştirildiğinde bu değişikliğin paket grupları için etkinleştirilmesi OVERRIDE_MIN_ASPECT_RATIO_MEDIUM_VALUE tarafından tanımlanan orta değere etkinliğin minimum en boy oranı.

PENDING_INTENT_EXPLICIT_MUTABILITY_REQUIRED

Değişiklik Kimliği: 160794467
Varsayılan Durum: Android 12 (API düzeyi 31) veya sonraki sürümleri hedefleyen uygulamalar için etkinleştirilir.

Android 12 (API düzeyi 31) ve sonraki sürümleri hedefleyen uygulamalar için her PendingIntent öğesinin değişkenliğini belirtmeniz gerekir bir nesnedir. Bu ek şart, uygulamanızın güvenliğini artırır.

Bu değişiklik hakkında daha fazla bilgi edinmek için Beklemedeki amaçların değişkenliği bildirmesi gerekir bölümüne bakın.

PREVENT_SETTING_PASSWORD_QUALITY_ON_PARENT

Değişiklik Kimliği: 165573442
Varsayılan Durum: Android 12 (API düzeyi 31) veya sonraki sürümleri hedefleyen uygulamalar için etkinleştirilir.

Android 12 (API düzeyi 31) ve sonraki sürümleri hedefleyen yönetici uygulamaları, DevicePolicyManager.getParentProfileInstance(ComponentName) çağrısı yapılarak elde edilen DevicePolicyManager örneğinde şifre kalitesini ayarlamak için DevicePolicyManager.setPasswordQuality(ComponentName, int) kullanamaz. Bunun yerine, cihaz genelinde kabaca şifre şartlarını belirlemek için DevicePolicyManager.setRequiredPasswordComplexity(int) kullanmalıdır.

RATE_LIMIT_TOASTS

Değişiklik Kimliği: 174840628
Varsayılan Durum: Bu değişiklik açılamaz. Yalnızca uyumluluk çerçevesi tarafından günlüğe kaydedilir.

Toast.show() kullanıcının tek bir görevle çok fazla kadeh kaldırtarak sınırlı bir süre için geçerli. Bir belirli bir zaman aralığı, tostun atılmasına neden olur.

REQUIRE_EXACT_ALARM_PERMISSION

Değişiklik Kimliği: 171306433
Varsayılan Durum: Android 12 (API düzeyi 31) veya sonraki sürümleri hedefleyen uygulamalar için etkinleştirilir.

Android 12 (API düzeyi 31) ve sonraki sürümleri hedefleyen uygulamalar için Manifest.permission.SCHEDULE_EXACT_ALARM tam alarm ayarlamak üzere herhangi bir API'yi kullanmak için (ör. setExactAndAllowWhileIdle(int, long, PendingIntent)) izin ve setAlarmClock(AlarmClockInfo, PendingIntent).

REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_ACTIVE_DATA_SUB_ID

Değişiklik Kimliği: 182478738
Varsayılan Durum: Android 12 (API düzeyi 31) veya sonraki sürümleri hedefleyen uygulamalar için etkinleştirilir.

Android 12 (API düzeyi 31) ve sonraki sürümleri hedefleyen uygulamalarda TelephonyCallback.ActiveDataSubscriptionIdListener çağrısı yapılabilmesi için Manifest.permission.READ_PHONE_STATE izni olmalıdır.

REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_CELL_INFO

Değişiklik Kimliği: 184323934
Varsayılan Durum: Android 12 (API düzeyi 31) veya sonraki sürümleri hedefleyen uygulamalar için etkinleştirilir.

Android 12 (API düzeyi 31) ve sonraki sürümleri hedefleyen uygulamalarda TelephonyCallback.CellInfoListener çağrısı yapılabilmesi için Manifest.permission.READ_PHONE_STATE izni olmalıdır.

REQUIRE_READ_PHONE_STATE_PERMISSION_FOR_DISPLAY_INFO

Değişiklik Kimliği: 183164979
Varsayılan Durum: Android 12 (API düzeyi 31) veya sonraki sürümleri hedefleyen uygulamalar için etkinleştirilir.

Android 12 (API düzeyi 31) ve sonraki sürümleri hedefleyen uygulamalar için uygulamaların şurada Manifest.permission.READ_PHONE_STATE iznine sahip olması gerekir: TelephonyCallback.DisplayInfoListener numaralı telefonu aramak için sipariş verin.

RESTRICT_ADB_BACKUP

Değişiklik Kimliği: 171032338
Varsayılan Durum: Android 12 (API düzeyi 31) veya sonraki sürümleri hedefleyen uygulamalar için etkindir.

adb backup, Android 12 (API düzeyi 31) ve sonraki sürümleri hedefleyen uygulamalarda hata ayıklaması yapılabilir olarak çalışan uygulamalar için otomatik olarak etkinleştirilir (android:debuggable, true olarak ayarlandı) ve diğer uygulamalarda kullanılamaz.

RESTRICT_DOMAINS

Değişiklik Kimliği: 175408749
Varsayılan Durum: Android 12 (API düzeyi 31) veya sonraki sürümleri hedefleyen uygulamalar için etkindir.

Android 12 (API düzeyi 31) ve sonraki sürümleri hedefleyen uygulamalar için uygulama bağlantıları doğrulama API'sinin güncellenmiş biçimi gereklidir. Bu koşul, uygulamaların şunu belirten bir intent filtresi içindeki alanları belirtmesi gerektiği anlamına gelir: şunların tümünü içerir:

  • android:autoVerify="true"
  • Intent.ACTION_VIEW
  • Intent.CATEGORY_BROWSABLE
  • Intet.CATEGORY_DEFAULT
  • Yalnızca IntentFilter.SCHEME_HTTP ve/veya IntentFilter.SCHEME_HTTPS (başka şema olmadan)

Android'in önceki sürümlerinde Intent.CATEGORY_BROWSABLE zorunlu değildi, diğer şemalara izin veriliyordu ve herhangi bir intent filtresinde autoVerify değerinin true olarak ayarlanması dolaylı olarak tüm intent filtrelerinin autoVerify="true" olarak ayarlandığını varsayın.

SECURITY_EXCEPTION_ON_INVALID_ATTRIBUTION_TAG_CHANGE

Değişiklik Kimliği: 151105954
Varsayılan Durum: Android 12 (API düzeyi 31) veya sonraki sürümleri hedefleyen uygulamalar için etkinleştirilir.

Android 12 (API düzeyi 31) ve sonraki sürümleri hedefleyen uygulamalarda, noteOp(String, int, String), noteProxyOp(String, String) ve startOp(String, int, String) yöntemlerine parametre olarak belirtilen paketin manifest dosyasında gönderilen tüm attributionTags'lerin tanımlanmasını zorunlu kılar.

Bu değişikliği etkinleştirmek için hem noteOp(String, int, String) çağrısı yapan paket yanı sıra yöntemin parametresi olarak belirtilen pakette de bu değişikliğin etkinleştirilmiş olması gerekir.

SELINUX_LATEST_CHANGES

Değişiklik Kimliği: 143539591
Varsayılan Durum: Android 12 (API düzeyi 31) veya sonraki sürümleri hedefleyen uygulamalar için etkindir.

Android 12 (API düzeyi 31) ve sonraki sürümleri hedefleyen uygulamalar için en son SELinux değişikliklerini etkinleştirir. Uygulama hedefleme için bu değişikliği devre dışı bırakma Android 12 (API düzeyi 31) veya sonraki sürümler işlem değildir. Paylaşılan kullanıcı kimliği kullanan uygulamalar üzerinde herhangi bir etkisi yoktur.

SETTINGS_API_V2

Değişiklik Kimliği: 178111421
Varsayılan Durum: Tüm uygulamalar için etkindir.

AndroidManifest.xml intent filtrelerinde autoVerify=true olarak işaretlenmiş alanları doğrulamak için kullanılan yeni kullanıcı tercihi API'si henüz mevcut platform önizlemesi. Şimdilik, bu ChangeId öğesini etkinleştirip Google Etiket Yöneticisi'ni kullanarak adb shell pm set-app-links-user-selection ve benzer komutlar içerir.

USE_SHORT_FGS_USAGE_INTERACTION_TIME

Değişiklik Kimliği: 183972877
Varsayılan Durum: Android 12 (API düzeyi 31) veya sonraki sürümleri hedefleyen uygulamalar için etkinleştirilir.

Android 12 (API düzeyi 31) ve sonraki sürümleri hedefleyen uygulamalar için bekleme paketini yükseltmeden önce daha kısa bir zaman aşımı süresi kullanılıp kullanılmayacağını belirler. Uygulamalar bir ön plan hizmeti başlattığında ACTIVE.