Davranış değişiklikleri: tüm uygulamalar

Android 12 platformu, bazı durumlarda etkilemesine yardımcı olur. Aşağıdaki davranış değişiklikleri, etkinleştirildiğinde tüm uygulamalar için geçerli olur: targetSdkVersion sürümünden bağımsız olarak Android 12'de çalıştırılabilir. Şunları yapmalısınız: test edebilir ve bunları doğru şekilde desteklemek için gereken şekilde değiştirebilirsiniz. geçerlidir.

Yalnızca uygulamaları etkileyen davranış değişikliklerinin listesini de incelediğinizden emin olun. Android 12'yi hedefler.

Kullanıcı deneyimi

Fazla kaydırma efektini uzat

Android 12 ve sonraki sürümleri çalıştıran cihazlarda fazla kaydırma için görsel davranış etkinlikleri ile ilgili değişiklikler hakkında bilgi edinebilirsiniz.

Android 11 ve önceki sürümlerde fazla kaydırma etkinliği, görsel öğelerin parıltı; Görsel öğeler esnemek ve geri gitmek için Android 12 ve sonraki sürümlerde ve hızlı bir şekilde saldırarak geri dönmelerini sağlıyor.

Daha fazla bilgi için kaydırmayı canlandırma hareketler bölümüne gidin.

Uygulama başlangıç ekranları

Daha önce Android 11'de özel bir başlangıç ekranı uyguladıysanız veya aşağıdaki durumlardan emin olmak için uygulamanızı SplashScreen API'ye Android 12'den itibaren düzgün şekilde görüntüleniyor. Uygulamanızı taşımazsanız kötülenmiş veya istenmeyen uygulama lansman deneyimine neden olabilir.

Talimatlar için Mevcut başlangıç ekranınızı taşıma hakkında daha fazla bilgi edinin.

Ayrıca Android 12'den itibaren sistem her zaman yeni Android sistem varsayılan başlangıç ekranı açık cold ve hazır durumda başlatma. Varsayılan olarak bu sistem varsayılan başlangıç ekranı, uygulamanızın başlatıcı simge öğesi ve windowBackground (tek bir renkse).

Daha fazla bilgi için başlangıç ekranları geliştirici kılavuzuna bakın.

Web intent çözümü

Android 12'den (API düzeyi 31) başlayarak genel bir web niyeti, Yalnızca uygulamanız belirli alan adı için onaylandıysa uygulamanızdaki etkinlik kontrol edilir. Uygulamanız alan adı için onaylanmazsa web intent, kullanıcının varsayılan tarayıcı uygulamasına çözümlenir.

Uygulamalar, aşağıdakilerden birini yaparak bu onayı alabilir:

Uygulamanız web intent'lerini çağırıyorsa şunu soran bir istem veya iletişim kutusu eklemeyi düşünün: kullanıcının işlemi onaylaması,

Hareketle gezinme için yoğun içerik modu iyileştirmeleri

Android 12, kullanıcıların aşağıdakileri daha kolay yapabilmesini sağlamak için mevcut davranışları birleştirir: kapsamlı moddayken hareketle gezinme komutlarını gerçekleştir mod'u seçin. İçinde Ayrıca, Android 12 yapışkan etiketler için geriye dönük uyumluluk gerçekçi deneyim mod'u seçin.

Display#getRealSize ve getRealMetrics: Kullanımdan kaldırma ve kısıtlamalar

Android cihazlar birçok farklı form faktöründe kullanılabilir. Örneğin, ekranlar, tabletler ve katlanabilir cihazlar. Her biri için içeriği uygun şekilde oluşturmak üzere uygulamanızın ekran veya görüntü boyutunu belirlemesi gerekir. Zaman içinde, Android, bu bilgilerin alınması için farklı API'ler sağlamaktadır. Android'de 11, WindowMetrics'i kullanıma sunduk. API ve kullanımdan kaldırılan şu yöntemler:

Android 12'de WindowMetrics kullanmanızı önermeye devam ediyoruz ve aşağıdaki yöntemlerin kullanımdan kaldırılmasını sağlayabilirsiniz:

Veri almak için Display API'lerini kullanan uygulamaların davranışını uygulamanın sınırları nedeniyle Android 12, API'lerin döndürdüğü değerleri kısıtlar. uygulamalar için idealdir. Bunun proje yöneticisinin MediaProjection ile bu bilgileri kullanan uygulamalar.

Uygulamalar, WindowMetrics API'leri kullanarak ve Configuration.densityDpi kullanarak mevcut yoğunluğu sorgulayabilirsiniz.

Android'in eski sürümleriyle daha kapsamlı uyumluluk için Jetpack WindowManager kitaplığını kullanabilirsiniz. WindowMetrics sınıfı içerir Android 4.0 (API düzeyi 14) ve sonraki sürümleri destekler.

WindowMetrics'in kullanımıyla ilgili örnekler

Öncelikle, uygulama etkinliğinizin tamamen yeniden boyutlandırılabilir olduğundan emin olun.

Bir etkinlik, herhangi bir etkinlik için etkinlik bağlamından WindowMetrics temel alınmalıdır. Kullanıcı arayüzüyle ilgili çalışmalar, WindowManager.getCurrentWindowMetrics() veya Jetpack'in WindowMetricsCalculator.computeCurrentWindowMetrics().

Uygulamanız bir MediaProjection oluşturuyorsa sınırlar doğru şekilde boyutlandırılmalıdır çünkü projeksiyon, projektör uygulamasının içinde bulunduğu ekran bölümünü yakalar. çalışıyor.

Uygulama tamamen yeniden boyutlandırılabilirse etkinlik bağlamı doğru sınırları döndürür. Örneğin:

Kotlin

val projectionMetrics: WindowMetrics = activityContext
      .getSystemService(WindowManager::class.java).maximumWindowMetrics

Java

WindowMetrics projectionMetrics = activityContext
      .getSystemService(WindowManager.class).getMaximumWindowMetrics();

Uygulama tamamen yeniden boyutlandırılamazsa bir WindowContext örneğini kullanarak ve etkinlik sınırlarının WindowMetrics değerini WindowManager.getMaximumWindowMetrics() veya Jetpack yöntemi WindowMetricsCalculator.computeMaximumWindowMetrics().

Kotlin

val windowContext = context.createWindowContext(mContext.display!!,
      WindowManager.LayoutParams.TYPE_APPLICATION, null)
val projectionMetrics = windowContext.getSystemService(WindowManager::class.java)
      .maximumWindowMetrics

Java

Context windowContext = context.createWindowContext(mContext.getDisplay(),
      WindowManager.LayoutParams.TYPE_APPLICATION, null);
WindowMetrics projectionMetrics = windowContext.getSystemService(WindowManager.class)
      .getMaximumWindowMetrics();

Çoklu pencere modundaki tüm uygulamalar

Android 12, çoklu pencere modunu standart çalışma haline getirir.

Platform, büyük ekranlarda (sw >= 600 dp) çoklu penceredeki tüm uygulamaları destekler modunda kullanabilirsiniz. Eğer resizeableActivity="false" Uygulama, ekrana uygun olması için gerektiğinde uyumluluk moduna alınır seçin.

Küçük ekranlarda (sw < 600 dp), sistem bir etkinliğin minWidth ve minHeight birlikte çalıştırılıp çalıştırılamayacağını belirler. Eğer resizeableActivity="false" uygulamanın, minimum değer ne olursa olsun çoklu pencere modunda çalışması engellenir ve yüksekliği belirtmelisiniz.

Daha fazla bilgi edinmek için Çoklu pencere desteği başlıklı makaleyi inceleyin.

Büyük ekranlarda kamera önizlemesi

Kamera uygulamaları genellikle kameraların yönü arasında sabit bir ilişki olduğunu cihaz ve kamera önizlemesinin en boy oranı. Ancak büyük ekran, katlanabilir cihazlar gibi faktörleri ve çoklu pencere ve bu varsayıma meydan okuyorsunuz.

Android 12'de, belirli bir ekran isteyen kamera uygulamaları yatay yönde ve yeniden boyutlandırılamaz (resizeableActivity="false") dikey dikey moda geçin. Bu modda, doğru yönü ve en boy oranı kamera önizleme oranı. Katlanabilir cihazlarda ve kamerası olan diğer cihazlarda donanım soyutlama katmanı (HAL), ek döndürme işlemi, kameranın çalışma süresini sensör yönü ve kamera çıkışı, en boy oranına uyacak şekilde kırpılır bir fotoğraf makinesi kullanıyor olabilir. Kırpma ve ekstra döndürme cihazın yönünden ve katlanmış olmasından bağımsız olarak kamera önizlemesinin sunumu cihazın açık olup olmadığını kontrol edin.

Ön plan hizmeti bildirimleri için kullanıcı deneyimi gecikmesi

Kısa süreli ön plan için sade bir deneyim sağlamak hizmetlerinde, Android 12 veya sonraki sürümler, ön plan hizmetinin gösterilmesini geciktirebilir bildirimleri 10 saniyeye çıkarırken istisnalar hakkında daha fazla bilgi edinin. Bu değişiklik, kısa süreli görevlerin bildirim almadan önce tamamlanma şansı veriyor görünür.

Performans

Kısıtlanmış Uygulamayı Beklemeye Alma Paketi

Android 11 (API düzeyi 30), kısıtlanmış Uygulama Bekleme Modu'nda paket Kova. Bu paket, Android 12'den itibaren varsayılan olarak etkindir. Kısıtlanmış paket, öncelik seviyesi en düşük (ve en yüksek kısıtlamalar) olan her şey hazır. Öncelik sırasına göre yüksekten düşüğe doğru gruplar şunlardır:

  1. Etkin: Uygulama şu anda kullanılıyor veya kısa süre önce kullanıldı.
  2. Çalışma grubu: Uygulama normal olarak kullanılıyor.
  3. Sık: Uygulama sıklıkla kullanılır ancak her gün kullanılmaz.
  4. Nadir: Uygulama sık kullanılmıyor.
  5. Kısıtlanmış: Uygulama çok fazla sistem kaynağı tüketiyor veya bazı uygulamalar istenmeyen davranışlardır.

Sistem, aşağıdaki işlemleri yapmak için kullanım alışkanlıklarının yanı sıra uygulamanızın davranışını uygulamanızı kısıtlanmış pakete yerleştirip yerleştirmeyeceğinize karar verebilirsiniz.

Uygulamanızda kısıtlanmış pakete eklenme olasılığı düşer daha sorumlu olabiliyor. Ayrıca, sistem, uygulamanızı kullanıcı uygulamanızla doğrudan etkileşimde bulunursa kısıtlayıcı paket.

Uygulamanızın kısıtlanmış pakette olup olmadığını kontrol edin

Sistemin uygulamanızı kısıtlanmış pakete yerleştirip yerleştirmediğini kontrol etmek için şu numarayı arayın: getAppStandbyBucket(). Bu yöntemin döndürülen değeri STANDBY_BUCKET_RESTRICTED ise uygulamanız kısıtlanmış pakettedir.

Kısıtlanmış paket davranışını test etme

Sistem, uygulamanızı kısıtlanmış uygulamanızı bu pakete manuel olarak taşıyabilirsiniz. Bunu yapmak için aşağıdaki komutu çalıştırın:

adb shell am set-standby-bucket PACKAGE_NAME restricted

Güvenlik ve gizlilik

Yaklaşık konum

İletişim kutusunda, biri
         diğer
Şekil 1. Kullanıcıya izin veren sistem izinleri iletişim kutusu tıklayın.

Android 12 veya sonraki sürümleri çalıştıran cihazlarda kullanıcılar isteği gönderin. yalnızca yaklaşık konuma erişim ekleyebilirsiniz.

Uygulamanız ACCESS_FINE_LOCATION çalışma zamanında istenen izin için ACCESS_COARSE_LOCATION kullanıcının yaklaşık konum erişimi verdiği durumu ele alma izni ekleyin. Her iki izni de tek bir çalışma zamanına eklemelisiniz isteyin.

Sistem izinleri iletişim kutusunda, kullanıcıya ilişkin şu seçenekler yer alır: aşağıda gösterildiği gibidir:

  • Tam: Tam konum bilgilerine erişim sağlar.
  • Yaklaşık: Yalnızca yaklaşık konum bilgilerine erişim sağlar.

Mikrofon ve kamera açma/kapatma anahtarları

Android 12 veya sonraki bir sürümü çalıştıran desteklenen cihazlar , kullanıcıların şunları yapmasına izin verir: cihazdaki tüm uygulamalar için kamera ve mikrofon erişimini etkinleştirip devre dışı bırakmak üzere tek bir açma/kapatma seçeneğine basın. Kullanıcılar, geçiş yapabilen seçeneklere şuradan erişebilirler: Hızlı Ayarlar bölümünde gösterildiği gibi veya sistem ayarlarındaki Gizlilik ekranından erişilebilir.

Bunlar hakkında daha fazla bilgi togglelar ve kontrol etme en iyi uygulamalara uyduğundan emin olun. CAMERA ve RECORD_AUDIO izin verir.

Mikrofon ve kamera göstergeleri

Android 12 veya sonraki sürümleri çalıştıran cihazlarda, bir uygulama mikrofon veya kameraya dokunduğunuzda, durum çubuğunda bir simge görünür.

Bunlar hakkında daha fazla bilgi gösterge tabloları uygulamanızın CAMERA ve RECORD_AUDIO izin verir.

Hızlı ayar kutuları &quot;Kamera erişimi&quot; olarak etiketlenir ve
         &quot;Mikrofon erişimi&quot;
Şekil 2. Mikrofon ve kamera açılır/kapatılır Hızlı Ayarlar.
Ekranın sağ üst köşesinde bulunan, şeklin üzerine
         bir kamera simgesi ve bir mikrofon simgesi içerir
Şekil 3. Gösterilen mikrofon ve kamera göstergeleri son verilere erişebilirsiniz.

İzin paketi görünürlüğü

Android 12 veya sonraki sürümleri çalıştıran cihazlarda Android 11 (API düzeyi 30) veya sonraki sürümlere sahip olan ve aşağıdaki yöntemlerden birini çağıran cihazlar Uygulamanın paketine göre filtrelenmiş bir sonuç kümesi alma görünürlük:

BouncyCastle uygulaması kaldırıldı

Android 12 birçok kişiyi kaldırır BouncyCastle uygulamaları tüm AES dahil olmak üzere, daha önce kullanımdan kaldırılan şifreleme algoritmaları kullanır. Sistem bunun yerine Conscrypt uygulamaları bu algoritmalardan yararlanır.

Aşağıdaki durumlardan biri geçerliyse bu değişiklik uygulamanızı etkiler:

  • Uygulamanız 512 bit anahtar boyutları kullanıyor. Conscrypt bu anahtar boyutunu desteklemiyor. Gerekirse uygulamanızın kriptografi mantığını farklı anahtar boyutları kullanacak şekilde güncelleyin.
  • Uygulamanız, KeyGenerator ile geçersiz anahtar boyutları kullanıyor. Conscrypt'in uygulanması KeyGenerator, ek performans temel parametreler için doğrulama yapıldığını gösterir. Örneğin, Conscrypt AES yalnızca şunları desteklediğinden uygulamanızın 64 bit AES anahtarı oluşturmasına izin vermez: 128, 192 ve 256 bit anahtarlar.

    BouncyCastle, geçersiz boyutlu anahtarların oluşturulmasına izin veriyor ancak daha sonra başarısız oluyor (bu anahtarlar bir Cipher ile kullanılıyorsa) Şifreleme daha önce başarısız oluyor.

  • Galois/Sayaç Modu (GCM) şifrelerinizi farklı bir boyutu kullanarak başlatırsınız. izin verilmelidir. Conscrypt'in uygulanması GcmParameterSpec için bir (NIST'nin önerdiği) 12 baytlık başlatma.

Pano erişimi bildirimleri

Android 12 ve sonraki sürümlerde bir uygulama getPrimaryClip() veya farklı bir klipten klip verilerine uygulamasını kullanıyorsanız bir posta mesajı bu pano erişimini kullanıcıya bildirir.

Bildirim mesajının içindeki metin aşağıdaki biçimi içerir: APP pasted from your clipboard..

Klip açıklamasındaki metin hakkında bilgi

getPrimaryClipDescription(), Android 12 ve sonraki sürümlerde şu ayrıntıları algılaması gerekir:

Uygulamalar sistem iletişim kutularını kapatamaz

Uygulamalar ve sistemle etkileşimde bulunan kullanıcıların bu konuda daha fazla kontrol sahibi olmasını sağlamak için ACTION_CLOSE_SYSTEM_DIALOGS intent işlemi, Android 12'den itibaren kullanımdan kaldırılmıştır. Birkaç uygulamanızın çağrıya çalıştığı bir intent kullanıyorsanız sisteminiz, uygulamanızın hedef SDK sürümüne bağlı olarak aşağıdakilerden birini yapar:

  • Uygulamanız Android 12 veya sonraki bir sürümü hedefliyorsa SecurityException gerçekleşir.
  • Uygulamanız Android 11 (API düzeyi 30) veya önceki sürümleri hedefliyorsa amaç yürütülür ve çalıştırıldığında aşağıdaki mesaj Logcat:

    E ActivityTaskManager Permission Denial: \
    android.intent.action.CLOSE_SYSTEM_DIALOGS broadcast from \
    com.package.name requires android.permission.BROADCAST_CLOSE_SYSTEM_DIALOGS, \
    dropping broadcast.
    

İstisnalar

Aşağıdaki durumlarda bir uygulama, Android 12 veya sonraki sürümler:

Güvenilmeyen dokunma etkinlikleri engellendi

Sistem güvenliğini ve iyi bir kullanıcı deneyimini korumak için Android 12, uygulamaların dokunmayı tüketmesini önler etkinlikler için bir yer paylaşımı uygulamanın güvenli olmayan bir şekilde kapatılmasını sağlar. Diğer bir deyişle, sistem belirli pencerelerden geçen dokunmaları engeller. birkaç istisna vardır.

Bu durumdan etkilenen uygulamalar

Bu değişiklik, dokunmaların pencerelerinden geçmesine izin vermeyi seçen uygulamaları etkiler. Örneğin, FLAG_NOT_TOUCHABLE tıklayın. Aşağıda bazı örnekler verilmiştir, ancak bunlarla sınırlı değildir:

İstisnalar

Aşağıdaki durumlarda, "geçiş" dokunmalara izin verilir:

  • Uygulamanızdaki etkileşimler. Uygulamanız, yer paylaşımını ve yer paylaşımını gösterir. Kullanıcı, yalnızca uygulamanızla etkileşimde bulunduğunda görünür.
  • Güvenilen pencereler. Bu pencereler şunları içerir (ancak bunlarla sınırlı değildir): takip etmek için:

    ziyaret edin.
  • Görünmez pencereler. Pencerenin kök görünümü GONE veya INVISIBLE.

  • Tamamen şeffaf pencereler. İlgili içeriği oluşturmak için kullanılan alpha mülkü pencere için 0,0'dır.

  • Sistem uyarı pencereleri yeterince şeffaf. Sistem, uygulanan şeffaf hale getirildiğinde, sistem uyarı penceresinin yeterince yarı saydam olması dokunmalar için sistemin maksimum gizleme opaklığından küçük veya ona eşittir. Android 12'de bu maksimum opaklık varsayılan olarak 0, 8'dir.

Güvenilir olmayan bir dokunmanın engellendiğini algıla

Dokunma işlemi sistem tarafından engellenirse Logcat, aşağıdaki mesajı günlüğe kaydeder:

Untrusted touch due to occlusion by PACKAGE_NAME

Değişikliği test etme

Şu özelliklere sahip cihazlarda güvenilmeyen dokunmalar varsayılan olarak engellenir: Android 12 veya sonraki sürümler. Güvenilir olmayan dokunmalara izin vermek için terminal penceresinde şu ADB komutunu kullanın:

# A specific app
adb shell am compat disable BLOCK_UNTRUSTED_TOUCHES com.example.app

# All apps
# If you'd still like to see a Logcat message warning when a touch would be
# blocked, use 1 instead of 0.
adb shell settings put global block_untrusted_touches 0

Davranışı varsayılana geri döndürmek için (güvenilmeyen dokunmalar engellenir) şu komutu kullanın:

# A specific app
adb shell am compat reset BLOCK_UNTRUSTED_TOUCHES com.example.app

# All apps
adb shell settings put global block_untrusted_touches 2

Etkinlik yaşam döngüsü

Geri tuşuna basıldığında kök başlatıcı etkinlikleri artık bitmiyor

Android 12, sistemin varsayılan işleme şeklini değiştiriyor Başlatıcıya geri bas temelini oluşturan aktivitelerdir. Önceki sürümlerde sistem, bu işlemleri geri tuşuna bastığınızda bitirir. Android 12'de sistem artık hareket ediyor. ve görevini bitirmek yerine arka plana atar. Yeni davranış, uygulamadan çıkarken mevcut davranışla eşleşir ana sayfa düğmesini veya hareketini kullanın.

Çoğu uygulama için bu değişiklik, Geri'yi kullananların uygulamanızı uygulamanızı sıcak durumdan daha hızlı bir şekilde devam ettirebilir. uygulamasını tamamen yeniden başlatmak yerine soğuk durum.

Uygulamalarınızı bu değişikliği test ederek test etmenizi öneririz. Uygulamanız şu anda İşlenecek öğe sayısı: onBackPressed() Geri gezinme ve Activity işlemini tamamlayın, uygulamanızı arama için güncelleyin super.onBackPressed() tarihine kadar izleyebilirsiniz. Telefon etme super.onBackPressed(), şu durumlarda etkinliği ve görevini arka plana taşır: ve kullanıcılara daha tutarlı bir gezinme deneyimi sunar. özellikler.

Ayrıca genel olarak özel geri gezinme sağlayın, yerine onBackPressed() değerini geçersiz kılabilir. AndroidX Etkinlik API'leri uygun sistem davranışına otomatik olarak sisteme müdahale eden bileşenlerin sayısını belirler.

Grafikler ve resimler

İyileştirilmiş yenileme hızı geçişi

Android 12'de yenileme hızı setFrameRate() ekranın yeni yenileme hızını kontrol edin. kesintisiz geçiş, herhangi bir görsel içermeyen (örneğin bir iki saniyelik siyah ekran) Daha önce, sorunsuz bir geçişi desteklemiyordu. Normalde setFrameRate() çağrıldıktan sonraki aynı yenileme hızı. Sonuçlarınızı geçişin sorunsuz olup olmayacağını getAlternativeRefreshRates() aranıyor. Genellikle, geri çağırma onDisplayChanged() tamamlandıktan sonra çağrılmış olsa da bazıları için harici olarak bağlı ekranlarda, kesintisiz olmayan geçiş sırasında çağrılır.

Aşağıda, bunu nasıl uygulayabileceğinize ilişkin bir örnek verilmiştir:

Kotlin

// Determine whether the transition will be seamless.
// Non-seamless transitions may cause a 1-2 second black screen.
val refreshRates = this.display?.mode?.alternativeRefreshRates
val willBeSeamless = Arrays.asList<FloatArray>(refreshRates).contains(newRefreshRate)

// Set the frame rate even if the transition will not be seamless.
surface.setFrameRate(newRefreshRate, FRAME_RATE_COMPATIBILITY_FIXED_SOURCE, CHANGE_FRAME_RATE_ALWAYS)

Java

// Determine whether the transition will be seamless.
// Non-seamless transitions may cause a 1-2 second black screen.
Display display = context.getDisplay(); // API 30+
Display.Mode mode = display.getMode();
float[] refreshRates = mode.getAlternativeRefreshRates();
boolean willBeSeamless = Arrays.asList(refreshRates).contains(newRefreshRate);

// Set the frame rate even if the transition will not be seamless.
surface.setFrameRate(newRefreshRate, FRAME_RATE_COMPATIBILITY_FIXED_SOURCE, CHANGE_FRAME_RATE_ALWAYS);

Bağlantı

Passpoint güncellemeleri

Aşağıdaki API'ler Android 12'ye eklenir:

  • isPasspointTermsAndConditionsSupported(): Hükümler ve koşullar bir Passpoint'tir Bu özellik, ağ dağıtımlarının güvenli olmayan giriş portallarının yerini almasını sağlar. açık ve güvenli bir Passpoint ağı kullanan anlık ağaçlar. Bildirim, şartlar ve koşulların kabul edilmesi gerektiğinde kullanıcıya gösterilir. Şartlar ve koşullara tabi Passpoint ağlarını öneren uygulamalar , cihazın bu özelliği desteklediğinden emin olmak için önce bu API'yi çağırmalıdır. Cihaz bu özelliği desteklemiyorsa bu ağ ve alternatif veya eski bir ağ önerilmelidir.
  • isDecoratedIdentitySupported(): Önek dekorasyonu olan ağlarda kimlik doğrulaması yapılırken, kimlik öneki, ağ operatörlerinin Ağ Erişimini güncellemesine olanak tanır İçindeki birden fazla proxy aracılığıyla açık yönlendirme gerçekleştiren tanımlayıcı (NAI) (bkz. AAA) RFC 7542: daha fazla bilgi edinebilirsiniz).

    Android 12 bu özelliği, PPS-MO uzantıları. Şifrelenmiş bir kimlik gerektiren Passpoint ağlarını öneren uygulamalar Cihazın bu özelliği desteklediğinden emin olmak için önce bu API'yi çağırın. Eğer cihaz bu özelliği desteklemiyorsa kimlik dekore edilmez ve ağ kimlik doğrulaması başarısız olabilir.

Passpoint önerisi oluşturmak için uygulamaların şunu kullanması gerekir: PasspointConfiguration Credential ve HomeSp sınıf. Bu sınıfları, Wi-Fi Alliance'ta tanımlanan Passpoint profilini açıklar. Passpoint spesifikasyonlarına göz atın.

Daha fazla bilgi için İnternet bağlantısı için kablosuz bağlantı önerisi API'si bölümüne bakın.

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

Android 12, 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 12'yi hedeflemiyorsa bu değişikliklerden bazıları sizi hemen etkilemeyebilir. Ancak şu anda SDK olmayan arayüzler (uygulamanızın hedef API seviyesine bağlı olarak), 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 12'deki SDK dışı arayüz kısıtlamaları. Daha fazla bilgi edinmek için SDK dışı arayüzler hakkında daha fazla bilgi için SDK dışı kısıtlamalar bölümüne bakın. bilgi edinin.