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.
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:
Android uygulamasını kullanarak alan adını doğrulayın Bağlantılar başlıklı makaleyi inceleyin.
Android 12 veya sonraki sürümleri hedefleyen uygulamalarda sistem, nasıl değiştireceğini otomatik olarak doğrular uygulamanızın Android App Links'i kullanabilirsiniz. Uygulamanızın niyetine göre filtreleri,
BROWSABLE
kategorisini dahil ettiğinizden vehttps
öğesini desteklediğinizden emin olun şema.Android 12 veya sonraki sürümlerde manuel olarak doğrulama uygulamanızın Android App Links'i kullanabilirsiniz. uygulamasını indirin.
Kullanıcıdan uygulamanızı alan seçeneğini tıklayın.
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:
- Etkin: Uygulama şu anda kullanılıyor veya kısa süre önce kullanıldı.
- Çalışma grubu: Uygulama normal olarak kullanılıyor.
- Sık: Uygulama sıklıkla kullanılır ancak her gün kullanılmaz.
- Nadir: Uygulama sık kullanılmıyor.
- 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
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.
İ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:
- Stilize edilmiş metin,
isStyledText()
. - URL'ler gibi farklı metin sınıflandırmaları
getConfidenceScore()
.
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:
- Uygulamanız bir enstrümantasyon çalıştırıyorsa test edin.
Uygulamanız Android 11 veya önceki bir sürümü hedefliyor ve bir pencere gösteriyor söz konusu bildirimin üzerindeki bildirimin çekmece.
Uygulamanız Android 11 veya önceki sürümleri hedefliyor. Buna ek olarak, kullanıcı Bir bildirimle etkileşimde bulunulduğunda, muhtemelen bildirimin işlemi kullanılarak düğmeleriyle ve uygulamanız da Bir hizmetin veya yayının işlenmesi e-postayı alan kişi tarafından yanıtlanır.
Uygulamanız Android 11 veya önceki sürümleri hedefliyor ve etkin bir sürüme sahip erişilebilirlik hizmetine sahip olabilir. Uygulamanız bildirim çubuğunu kapatmak istiyorsa "the"
GLOBAL_ACTION_DISMISS_NOTIFICATION_SHADE
erişilebilirlik işlemini kullanın.
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:
-
SYSTEM_ALERT_WINDOW
kullanan pencereler gibiTYPE_APPLICATION_OVERLAY
, veFLAG_NOT_TOUCHABLE
işaretini kullanın. FLAG_NOT_TOUCHABLE
işaretini kullanan etkinlik pencereleri.
İ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
veyaINVISIBLE
.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.