Android, yönlendirme veya yeniden boyutlandırma kısıtlamaları bildiren uygulamalar için uyumluluk modunu etkinleştirir. Uyumluluk modu, büyük ekranlı cihazlarda ve katlanabilir kapaklı telefonlarda kabul edilebilir uygulama davranışını sağlar ancak kullanılabilirlik açısından ideal değildir.
Uygulama başına geçersiz kılma, cihaz üreticilerinin, sanal cihaz sahiplerinin1 ve kullanıcıların uygulama düzenini iyileştirmek veya uygulamaların belirli cihazlarda bozulmasını önlemek için uygulama davranışını değiştirmesine olanak tanır.
Android 16
Android 16 (API düzeyi 36), en küçük genişliği >= 600 dp olan form faktörlerindeki uygulamaların düzenini iyileştirmek için ekran yönü, en boy oranı ve uygulama yeniden boyutlandırma kısıtlamalarını yoksayar.
Aşağıdaki uygulama başına geçersiz kılmalar, API düzeyi 36'yı hedefleyen uygulamalarda çalışmaz:
- FORCE_RESIZE_APP
- FORCE_NON_RESIZE_APP
- OVERRIDE_MIN_ASPECT_RATIO
- OVERRIDE_MIN_ASPECT_RATIO_PORTRAIT_ONLY
- OVERRIDE_MIN_ASPECT_RATIO_MEDIUM
- OVERRIDE_MIN_ASPECT_RATIO_LARGE
- OVERRIDE_MIN_ASPECT_RATIO_TO_ALIGN_WITH_SPLIT_SCREEN
- OVERRIDE_MIN_ASPECT_RATIO_EXCLUDE_PORTRAIT_FULLSCREEN
- OVERRIDE_ANY_ORIENTATION
- OVERRIDE_ANY_ORIENTATION_TO_USER
- OVERRIDE_UNDEFINED_ORIENTATION_TO_PORTRAIT
- OVERRIDE_UNDEFINED_ORIENTATION_TO_NOSENSOR
- OVERRIDE_LANDSCAPE_ORIENTATION_TO_REVERSE_LANDSCAPE
- OVERRIDE_ORIENTATION_ONLY_FOR_CAMERA
- OVERRIDE_USE_DISPLAY_LANDSCAPE_NATURAL_ORIENTATION
- OVERRIDE_ENABLE_COMPAT_IGNORE_REQUESTED_ORIENTATION
- OVERRIDE_ENABLE_COMPAT_IGNORE_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED
- OVERRIDE_RESPECT_REQUESTED_ORIENTATION
- OVERRIDE_EXCLUDE_CAPTION_INSETS_FROM_APP_BOUNDS
Devre dışı bırak
Uygulamanız API düzeyi 36'yı hedefleyebilir ancak Android 16 davranışını devre dışı bırakabilir. Bu durumda OVERRIDE_ANY_ORIENTATION_TO_USER geçerli değildir.
Manifest özelliğini tanımlama
API düzey 36 davranışını devre dışı bırakmak için PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY
manifest mülkünü tanımlayın.
Belirli bir etkinliği devre dışı bırakmak için <activity>
öğesinde özelliği ayarlayın:
<activity ...>
<property
android:name="android.window.PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY"
android:value="true" />
...
</activity>
Uygulamanızın tamamı için kapsam dışında kalmayı tercih etmek istiyorsanız <application>
öğesinde mülkü ayarlayın:
<application ...>
<property
android:name="android.window.PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY"
android:value="true" />
...
</application>
Referans cihazlar
Aşağıdaki cihazlar, alışılmadık yapılandırmalar veya uygulamalar tarafından iyi desteklenmeyen yapılandırmalar nedeniyle uygulama bazında geçersiz kılma gerektirebilir:
- Tabletler: Pixel Tablet gibi bazı tabletlerin doğal yönü yataydır. Bir cihazın doğal yönü,
Display#getRotation()
döndürdüğündeSurface.ROTATION_0
olur. UygulamalarROTATION_0
yönünün dikey olduğunu varsayarsa uygulama düzenleri ve kamera önizlemesi, cihaz ekranıyla eşleşmeyebilir. - Yatay katlanabilir cihazlar: Pixel Fold gibi bazı katlanabilir cihazlar katlandığında dikey, açıldığında ise yatay yönde olur. Uygulamalar, katı açılmış yönün dikey olduğunu varsayarsa titreme döngüleri veya düzen sorunları yaşanabilir.
- Katlanabilir kapaklı telefonlar: Katlanmamış kapaklı telefonlar genellikle dikey yöndedir. Ancak katlandığında telefonlarda genellikle yatay yönde küçük bir ekran bulunur. Uygulamalar, ekranların farklı yönlerini tanımlamalı ve bunlara uyum sağlamalıdır.
- Harici ekranlar: Belirli cihazlar, harici ve bağlı ekranlarda masaüstü pencere oturumu başlatabilir. Uygulamalar, ekran boyutu ve çözünürlük gibi bilgiler için harici ekranları sorgulamalıdır. Aksi takdirde, uygulamalar ekranlarla ilgili yanlış varsayımlarda bulunabilir ve bu da uygulamanın yanlış davranışına yol açabilir.
- Araba ekranları: Araba ekranlarının çoğu yataydır. Araba ekranları için park edilmiş uygulamalar geliştirme, tabletler için geliştirme işlemine benzer.
Sık karşılaşılan uyumluluk sorunları
Uygulamalar en sık olarak uygulama yönü kısıtlamaları, yeniden boyutlandırma ve en-boy oranı kısıtlamaları, kamera önizleme yönünün yanlış işlenmesi ve yanlış kullanılan API'ler nedeniyle uyumluluk sorunları yaşar.
Sinemaskop
Letterboxing, uygulamayı ekranın ortasına veya büyük ekranlarda kolay erişim için bir tarafa ya da diğer tarafa yerleştirir. Matlar (tek renkli çubuklar veya bulanık duvar kağıdı), uygulamanın yanlarında ya da üst ve alt kısımlarında kullanılmayan ekran alanını doldurur.
Cihaz ekranının boyutları ve en-boy oranı genellikle çoğu uygulamanın tasarlandığı standart telefonlardan farklı olduğundan, büyük ekranlı cihazlarda sıklıkla siyah bantlar görülür.

1.şekil Yalnızca dikey yönde kullanılabilen uygulamalar, yatay tabletlerde ve katlanabilir cihazlarda mektup kutusu şeklinde gösterilir.
Sorun
Uygulama, sabit yönlendirmeye, sabit en boy oranına sahip olduğu veya yeniden boyutlandırılamadığı için tüm ekran yapılandırmalarını desteklemiyor.
Uygulama yönünü ve yeniden boyutlandırılabilirliğini kontrol eden yapılandırma ayarları şunlardır:
screenOrientation
: Bir uygulama için sabit bir yön belirtir. Uygulamalar,Activity#setRequestedOrientation()
kullanarak çalışma zamanında da yön ayarlayabilir.resizeableActivity
: Sistemin, uygulamaları farklı boyutlardaki pencerelere uyacak şekilde yeniden boyutlandırıp boyutlandıramayacağını gösterir. Android 11 (API düzeyi 30) ve önceki sürümlerde, uygulamaların çoklu pencere modunu destekleyip desteklemediğini belirtir. Android 12 (API düzeyi 31) ve sonraki sürümlerde, uygulamaların küçük ekranlarda (kompakt pencere boyutu sınıfı) çok pencereli modu destekleyip desteklemediğini belirtir. Android 12 ve sonraki sürümlerde uygulamalar, bu ayardan bağımsız olarak büyük ekranlarda (orta veya genişletilmiş pencere boyutu sınıfı) çoklu pencere modunu destekler.maxAspectRatio
: Uygulama tarafından desteklenen maksimum en-boy oranını belirtir. YalnızcaresizeableActivity
değerifalse
olarak ayarlanmış uygulamalarmaxAspectRatio
değerini ayarlayabilir.minAspectRatio
: Uygulama tarafından desteklenen minimum en-boy oranını belirtir. YalnızcaresizeableActivity
değerifalse
olarak ayarlanmış uygulamalarminAspectRatio
değerini ayarlayabilir.

Yalnızca dikey yönle sınırlı olan uygulama, yatay cihazda kullanılamaz.
Optimizasyon
Uygulama, tüm cihaz ve çoklu pencere modu ekran yönlerini ve boyutlarını desteklemelidir. Uygulama düzenlerinizden ve uygulama manifest dosyanızdan tüm yön ve sabit en-boy oranı kısıtlamalarını kaldırın.

Uygulama, tüm cihaz yönlerini destekliyor.
Uyumlulukla ilgili geçici çözüm
Sabit yönlendirmeye veya sabit en boy oranına sahip bir uygulama, doğrudan pencere boyutunu ya da yönünü desteklemeyen bir pencerede çalıştırılırsa Android, sürekliliği korumak için uygulamaya siyah bant ekler.
Android 12 (API düzeyi 31) ile başlayıp 12L (API düzeyi 32) ile devam eden süreçte platform, letterbox'lı uygulamalara çeşitli geliştirmeler uygular. Cihaz üreticileri, kullanıcı arayüzü geliştirmelerini uygular. Uygulamanızın iyileştirmelerden yararlanması için ek geliştirme yapmanız gerekmez.
Android 12 (API düzeyi 31), cihaz üreticileri tarafından yapılandırılabilen aşağıdaki estetik geliştirmeleri sunar:
- Yuvarlatılmış köşeler: Uygulama penceresinin köşeleri daha zarif bir görünüme sahiptir.
- Sistem çubuğu şeffaflığı: Uygulamanın üzerinde yer alan durum ve gezinme çubukları yarı şeffaftır. Bu sayede çubuklardaki simgeler her zaman sinemaskop arka plan üzerinde görülebilir.
- Yapılandırılabilir en boy oranı: Uygulamanın görünümünü iyileştirmek için en boy oranı ayarlanabilir.

Şekil 2. Kullanıcı arayüzü geliştirmeleriyle birlikte letterbox'lı uygulama.
12L (API düzeyi 32) aşağıdaki işlevsel iyileştirmeleri ekler:
Yapılandırılabilir konumlandırma: Cihaz üreticileri, büyük ekranlarda uygulamayı ekranın sol veya sağ tarafına konumlandırarak etkileşimi kolaylaştırabilir.
Yeniden tasarlanan yeniden başlatma düğmesi: Cihaz üreticileri, boyut uyumluluğu modu için yeniden başlatma düğmesine kullanıcılar tarafından daha iyi tanınması amacıyla yeni bir görünüm verebilir.
Android 13 (API düzeyi 33), letterbox'lı uygulamanın ekranda konumlandırılması veya letterbox'ın bölünmüş ekran moduna dahil edilmesiyle ilgili bir kullanıcı eğitimi iletişim kutusu ekler:

Şekil 3. Kullanıcı eğitimi iletişim kutusu içeren, letterbox formatında uygulama.
Boyut uyumluluğu modu
Boyut uyumluluk modu, uygulamanın en boy oranını koruyan ve yeniden başlatma kontrolü içeren bir mektup kutusu modudur. Bu kontrol, kullanıcıların uygulamayı yeniden başlatmasına ve ekranı yeniden çizmesine olanak tanır. Android, yeniden boyutlandırılamayan uygulamalar için boyut uyumluluğu modunu etkinleştirir. Bir etkinlik, boyutları etkinliğin boyutlarıyla uyumlu olmayan bir ekran kapsayıcısına taşındığında sistem, uygulamayı en az bir boyutta cihaz ekranını dolduracak şekilde yeniden ölçeklendirebilir.
Boyut uyumluluğu modunu tetikleyebilecek cihaz yapılandırma değişiklikleri şunlardır:
- Cihaz döndürme
- Katlanabilir cihaz katlanıyor veya açılıyor
- Tam ekran ve bölünmüş ekran görüntüleme modları arasında geçiş yapma
Sorun
Boyut uyumluluk modu genellikle yön veya en-boy oranı açısından kısıtlanmış ve yeniden boyutlandırılamayacak şekilde yapılandırılmış (veya sistem tarafından belirlenmiş) etkinlikler için geçerlidir.
Uygulamanız aşağıdaki ölçütlerden herhangi birini karşılıyorsa yeniden boyutlandırılabilir olarak kabul edilir ve boyut uyumluluğu moduna yerleştirilmez:
resizeableActivity="true"
ile yeniden boyutlandırılabilir.- Pencere içinde pencere (PIP) modu desteklenir.
- Yerleştirilmiş olmalıdır.
- Cihaz üreticisi tarafından
FORCE_RESIZE_APP
uygulama başına geçersiz kılma işlemi uygulandı mı? (Uygulama tarafından ayarlanan özellikler yoksayılır.)
Uygulamanız bu koşullardan herhangi birini karşılamıyorsa yeniden boyutlandırılabilir olarak kabul edilmez ve boyut uyumluluğu moduna yerleştirilebilir.

Yeniden boyutlandırılamayan uygulama, çoklu pencere modunda kilitleniyor.
Optimizasyon
Uygulama, tüm ekran boyutlarını desteklemelidir. Uygulama manifestinde <activity>
veya <application>
öğesinin android:resizeableActivity
özelliğini true
olarak ayarlayarak uygulamanızı yeniden boyutlandırılabilir hale getirin. Uygulamanız için duyarlı/uyarlanabilir düzenler tasarlayın. Daha fazla bilgi için Farklı ekran boyutlarını destekleme ve Çok pencereli modu destekleme başlıklı makaleleri inceleyin.

Uygulama tüm pencere boyutlarında çalışır.
Uyumlulukla ilgili geçici çözüm
Android, sistemin, uygulamanın en az bir boyutta ekran penceresini dolduracak şekilde yeniden ölçeklendirilmesiyle mektup zarfı biçimindeki uygulamanın ekranının iyileştirilebileceğini belirlemesi durumunda uygulamayı boyut uyumluluğu moduna yerleştirir. Sistem, uygulama sürecini yeniden oluşturup etkinliği yeniden oluşturarak ve ekranı yeniden çizerek yeniden başlatma kontrolü gösterir. Ayrıca Süreçlere ve ileti dizilerine genel bakış başlıklı makaleyi de inceleyin.

Yalnızca dikey yönde kullanılan uygulama, yatay yönde posta kutusu biçiminde gösteriliyor ve yeniden başlatma kontrolüyle yeniden ölçeklendiriliyor.
Görüntü uyumluluğu modu
Ekran uyumluluğu modu, uygulama farklı ekranlar arasında taşındığında uygulamanın yeniden başlatılmasını önler. Bu durum, renk modu, dokunmatik ekran kullanılabilirliği veya ekran yoğunluğu değişikliği gibi bir yapılandırma değişikliğini tetikleyebilir.
Kararlılığı ve sürekliliği artırmak için oyunlarda varsayılan olarak ekran uyumluluk modu (android:appCategory
işaretine göre) etkinleştirilir.
Boyut uyumluluk modunun aksine, ekran uyumluluk modu uygulamanın yapılandırmasını dondurmaz. Uygulama, onConfigurationChanged()
geri çağırma gibi API'ler aracılığıyla tüm yapılandırma güncellemelerini almaya devam edebilir ancak kesintiye neden olan yeniden başlatma işleminden muaf tutulur. Bu nedenle, onConfigurationChanged() gibi API'leri düzgün şekilde destekleyen oyunlar, ekran uyumluluğu modunda olsalar bile kullanıcı arayüzlerini duyarlı bir şekilde güncelleyebilir.
Görüntüleme uyumluluğu modunu devre dışı bırakmak ve uygulamanızdaki yapılandırma değişikliklerini işlemek için uygulamanın AndroidManifest.xml
dosyasında yapılandırma değişiklikleri desteğini bildirin ve yapılandırma değişikliklerini onConfigurationChanged() geri çağırma işlevinde işleyin.
<activity
android:name=".MyGameActivity"
android:configChanges="colorMode|touchscreen|density|...">
...
</activity>
Titreyen döngüler
Bir uygulama tüm ekran yönlerini desteklemediğinde, yapılandırma değişikliği olduğunda tekrar tekrar yeni yönler isteyebilir. Bu durum, ekranın titremesine veya uygulamanın sürekli dönmesine neden olan sonsuz bir döngü oluşturur.
Sorun
Android 12 (API düzeyi 31) ve daha yeni sürümlerde cihaz üreticileri, cihazlarını uygulamalar tarafından belirtilen yön kısıtlamalarını yoksayacak ve bunun yerine uyumluluk modlarını zorunlu kılacak şekilde yapılandırabilir. Örneğin, katlanabilir bir cihaz, etkinlik cihazın yatay tablet boyutundaki iç ekranında gösterildiğinde etkinliğin android:screenOrientation="portrait"
ayarını yoksayabilir.
Bir uygulamanın yön kısıtlamaları yoksayılırsa uygulama, Activity#setRequestedOrientation()
işlevini çağırarak yönünü programatik olarak ayarlayabilir. Uygulama, yapılandırma değişikliklerini işlemiyorsa çağrı, uygulamanın yeniden başlatılmasına neden olur (bkz. Yapılandırma değişikliklerini işleme). Yeniden başlatma işleminden sonra uygulamanın yönlendirme kısıtlamaları tekrar göz ardı edilir, uygulama setRequestedOrientation()
işlevine yapılan çağrıyı tekrarlar, çağrı uygulama yeniden başlatma işlemini tetikler ve bu şekilde kendi kendini devam ettiren bir döngü oluşur.
Bununla karşılaşabileceğiniz bir diğer durum da cihaz ekranının doğal yönü (Android tarafından belirlenen normal yön) yatay olduğunda (yani Display#getRotation()
çağrısı, cihazın en-boy oranı yatay olmasına rağmen Surface.ROTATION_0
değerini döndürdüğünde) yaşanır. Geçmişte uygulamalar, Display.getRotation() =
Surface.ROTATION_0
simgesinin cihazın dikey yönde olduğu anlamına geldiğini varsayıyordu. Ancak bu durum her zaman geçerli değildir. Örneğin, bazı katlanabilir cihazların iç ekranında ve bazı tabletlerde bu durum geçerli değildir.
Katlanabilir bir iç ekranda yatay yönde olan bir uygulama, ekran döndürmeyi kontrol edebilir, ROTATION_0
değerini alabilir, cihazın doğal yönünün dikey olduğunu varsayabilir ve uygulama düzenini yeniden yapılandırmak için setRequestedOrientation(
ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
)
işlevini çağırabilir. Uygulama yeniden başlatıldıktan sonra (yatay yönde) ekran döndürmeyi tekrar kontrol edebilir, ROTATION_0
değerini alabilir, setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)
işlevini çağırabilir ve sonsuz döngüye devam edebilir.

Dikey ekranda yalnızca yatay modda kullanılabilen bir uygulama, Activity#setRequestedOrientation()
numarasına tekrar tekrar arama yapıyor.
Optimizasyon
Uygulamalar şunları yapmamalıdır:
- Oryantasyon isteği, işlenmeyen yapılandırma değişiklikleri nedeniyle beklenmedik şekilde tetiklenebileceğinden
Activity#setRequestedOrientation()
etkinliğionCreate()
yönteminde varsayılan bir oryantasyon ayarlayın. - Cihazın doğal yönünün dikey (
ROTATION_0
) olduğunu varsayalım. - Yönü, geçerli pencere boyutuyla ilgili olmayan sinyallere göre ayarlayın. Örneğin,
Display#getRotation()
,FoldingFeature
öğesinin varlığı veya kullanımdan kaldırılan API'ler.

Uygulama, yapılandırma değişikliğini işler, yön kısıtlaması yoktur ve bu nedenle titreme döngüsüne girmez.
Uyumlulukla ilgili geçici çözüm
Android, aşağıdaki durumlarda Activity#setRequestedOrientation()
çağrılarını yoksayar:
Etkinlik, yönteme yapılan önceki bir çağrıdan sonra yeniden başlatılmış veya kamera uyumluluğu için zorunlu döndürme işlemi etkinleştirilmiş (aşağıdaki Kamera önizlemesi bölümüne bakın) olmalıdır.
Cihaz üreticileri, bu davranışı
OVERRIDE_ENABLE_COMPAT_IGNORE_REQUESTED_ORIENTATION
içeren bir uygulamaya uygulayabilir.Etkinlik, bir saniyede ikiden fazla yönlendirme isteğinde bulundu. Bu durum, döngü oluştuğunu gösterir. Döngüdeki iki istekten Android, uygulama görüntüleme alanını en üst düzeye çıkaran isteği kullanır.
Cihaz üreticileri, bu davranışı
OVERRIDE_ENABLE_COMPAT_IGNORE_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED
içeren bir uygulamaya uygulayabilir.Sanal cihaz sahipleri, belirli cihazlarda yöntem çağrısını geçersiz kılmıştır.
Kamera önizleme
Kamera uygulamalarının kamera önizlemesi (veya vizörü), tabletlerde, dizüstü bilgisayarlarda ve katlanabilir ekranlarda yanlış hizalanabilir veya bozulabilir.
Sorun
Android Uyumluluk Tanımı Belgesi'nde, kamera görüntü sensörünün "kameranın uzun boyutunun ekranın uzun boyutuyla aynı doğrultuda olacak şekilde yönlendirilmesi GEREKTİĞİ" belirtilir.
Uygulamalar genellikle cihaz yönünün ve kamera sensörü yönünün dikey olduğunu varsayar. Bu, standart cep telefonlarında makul bir varsayımdır. Ancak tabletlerin ve dizüstü bilgisayarların doğal yönü ile kamera sensörleri yatay olabilir. Ayrıca, katlanabilir cihazlar gibi yeni form faktörleri birden fazla doğal yönlendirmeye ve farklı yönlendirmelerde birden fazla kamera sensörüne sahip olabilir.
Uygulamanın beklemediği bir kamera yönüyle etkinlik başlatmak veya farklı kameralar ya da cihaz ekranları (katlanabilir cihazlar için) arasında geçiş yapmak, kamera önizlemesinin yanlış hizalanmasına veya bozulmasına neden olabilir.

Büyük ekranlı katlanabilir cihazlarda kamera önizlemesinin yanlış hizalanması ve bozulması.
Optimizasyon
Kamera uygulamaları, doğru şekilde hizalanmış ve ölçeklendirilmiş bir kamera önizlemesi sunmak için cihaz yönünü ve kamera sensörü yönünü doğru şekilde tanımlayıp yönetmelidir. Uygulamalar, cihaz döndürme, sensör döndürme ve ekran ya da pencere en-boy oranını hesaplamalı, ardından sonuçları kamera önizlemesine uygulamalıdır. Ayrıntılı bilgi için Kamera önizlemesi ve Kamera vizörüne giriş başlıklı makaleleri inceleyin.

Kamera önizlemesi, tüm cihaz yönlerinde doğru şekilde hizalanır ve ölçeklendirilir.
Uyumlulukla ilgili geçici çözüm
Display#getRotation()
, Surface.ROTATION_0
değerini döndürdüğünde cihaz doğal yönündedir. Sistem, cihazın doğal yönüne göre
CameraCharacteristics.SENSOR_ORIENTATION
hesaplar. Android, dikey yönle sınırlı uygulamaların dikey penceresini cihazın doğal yönüyle eşleştirir. Çoğu uygulama da bu şekilde çalışır. Android, sensör yönü yatay ve kamera önizlemesi dikey olduğunda da kamera sensörü görüntüsünü kırpar. Belirli geçici çözümler şunlardır:
Dikey yönle sınırlı uygulamalarda kamera önizlemelerini döndürmeye zorla: Dikey yönle sınırlı uygulamalar, cihazın doğal yönünün ve kamera sensörünün dikey olmasını bekler. Ancak Android 12 (API düzeyi 31) ve sonraki sürümlerde, cihaz üreticileri yönlendirme spesifikasyonunu göz ardı ederse uygulamalar birden fazla cihaz yönünde çalışabilir.
Portre moduyla sınırlı bir uygulama kameraya bağlandığında Android, uygulama portre penceresini cihazın doğal yönüyle hizalamak için uygulamayı zorunlu olarak döndürür.
Bazı tabletlerde (referans cihazlar bölümüne bakın) uygulama dikey penceresi, cihazın doğal yönüyle uyumlu olması için tam ekran dikey olarak döndürülür. Uygulama, zorunlu döndürme işleminden sonra tam ekranı kaplıyor.
Tablet: Dikey yönle sınırlı uygulamanın döndürülmesini zorlayın.
Katlanabilir cihazların yatay iç ekranında (referans cihazlara bakın) yalnızca dikey etkinlikler, açılmış doğal yönle uyumlu olacak şekilde yatay olarak döndürülür. Uygulama, döndürme işlemi zorlandıktan sonra letterbox formatında gösteriliyor.
Katlanabilir cihaz: Portre moduyla sınırlı uygulamayı döndürmeye zorlar. Uygulama, letterbox biçiminde de gösterilir.
İç ön kamerayı kırpma: Bazı katlanabilir cihazlardaki iç ön kamera sensörü yatay yöndedir. Android, katlanabilir iç ekrandaki kamera önizlemesini döndürmeye zorlamanın yanı sıra sensörün cihaz yönünün tersi yönde bir görünüm yakalaması için iç ön (yatay) kamera görüş alanını kırpar.
Kamera önizlemelerini yenilemeye zorlama: Sistem, kamera önizlemesinin düzgün şekilde gösterildiğinden emin olmak için döndürmeye zorlamanın ardından etkinlik yöntemleri
onStop()
veonStart()
(varsayılan olarak) veyaonPause()
veonResume()
(OVERRIDE_CAMERA_COMPAT_ENABLE_REFRESH_VIA_PAUSE uygulama başına geçersiz kılma özelliği tarafından uygulanır) arasında geçiş yapar.En boy oranı ölçeklendirme: Sistem, zorunlu olarak döndürülen kamera önizlemesinin en boy oranını dinamik olarak daha yüksek bir minimum en boy oranıyla değiştirir. Bu sayede kamera önizlemesinin düzgün şekilde ölçeklenmesi sağlanır.
Uygulamalar kamera önizlemesini doğru şekilde işliyorsa uygulama geliştiriciler bu geçici çözümleri geçersiz kılabilir. Uygulama başına geçersiz kılmalar başlıklı makaleyi inceleyin.
Sıkça yanlış kullanılan API'ler
Android, çoklu pencere modu gibi özelliklerin ve katlanabilir cihazların desteğini eklediğinden eski API'lerin desteği sonlandırıldı ve bu API'lerin yerini tüm ekran boyutlarında ve cihaz form faktörlerinde çalışan güncel API'ler aldı. Ancak desteği sonlandırılan API'ler, geriye dönük uyumluluk için kullanılmaya devam edebilir.
Bazı View
API'leri, geliştiriciler tarafından her zaman iyi anlaşılmayan özel amaçlar için tasarlanmıştır.
Sorun
Geliştiriciler, desteği sonlandırılmış Display
API'leri kullanmaya devam ediyor ve API'lerin, cihaz ekran alanı sınırları yerine uygulama sınırlarını döndürdüğünü yanlış varsayıyor. Veya geliştiriciler, genel görüntüleme metriklerini almak için yanlışlıkla özel amaçlı görünüm API'lerini kullanır.
Sonuç olarak, uygulama penceresi yeniden boyutlandırma etkinliklerinden sonra kullanıcı arayüzü öğeleri yeniden konumlandırılırken yanlış hesaplamalar yapılıyor ve düzen sorunları oluşuyor.
Desteği sonlandırılan ve yaygın olarak yanlış kullanılan Display API'leri:
Daha fazla bilgi için Çok pencereli modu destekleme başlıklı makaleyi inceleyin.
Görüntüleme API'lerinin kötüye kullanılması:

Kullanımdan kaldırılan API, uygulama sınırlarını yanlış hesaplıyor. Uygulama içeriği ekranın dışına çıkıyor.
Optimizasyon
Kullanıcı arayüzü öğelerini konumlandırırken hiçbir zaman fiziksel ekran boyutuna güvenmeyin. Uygulamanızı aşağıdaki WindowManager
API'leri de dahil olmak üzere WindowMetrics
tabanlı API'lere taşıyın:
Platform:
Jetpack:

API, uygulama penceresi metriklerini doğru şekilde hesaplar.
Uyumlulukla ilgili geçici çözüm
İki geçersiz kılma, desteği sonlandırılan Display
API'leri ve yanlış kullanılan View
API'leri, uygulama sınırlarını döndürecek şekilde ayarlar:
Display
API'leri için ALWAYS_SANDBOX_DISPLAY_APIS
, View
API'leri için OVERRIDE_SANDBOX_VIEW_BOUNDS_APIS
. ALWAYS_SANDBOX_DISPLAY_APIS
, boyut uyumluluğu moduna uygun uygulamalara da varsayılan olarak uygulanır.
Şeffaf etkinlikler
Şeffaf etkinlikler, şeffaf arka plan stillerinin sonucudur. Örneğin:
<style name="Transparent" parent="AppTheme">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
</style>
Theme.MaterialComponents.Dialog
gibi iletişim kutularıyla ilgili temalarda, etkinlikleri şeffaf hale getiren stiller olabilir.
Şeffaf etkinlikler, mevcut ekran alanının tamamını kaplamaz. Bu nedenle, cihaz döndürme, cihazı katlama ve açma, çoklu pencere modu gibi yapılandırma değişikliklerine bağlı olarak mevcut ekran alanı değişebileceğinden yönetilmeleri zordur.
Sorun
Şeffaf bir etkinlik, görev etkinliği yığınında şeffaf etkinliğin altındaki ilk opak etkinliğin sınırlarına uymalıdır. Ancak, izin iletişim kutusu başlatan opak bir etkinlik trambolin (başka bir etkinliği başlatıp kaybolan etkinlik) olabilir. Bu nedenle, sistem, şeffaf izin iletişim kutusu etkinliğini başlatan trambolin etkinliğinin sınırlarını belirleyemez.

Etkinlik trambolinden başlatıldığı için iletişim kutusu yanlış konumlandırıldı.
Optimizasyon
Şeffaf etkinlikler, kısıtlamalarını bir görevin etkinlik yığınında kendilerinin altındaki en üstteki opak etkinlikten alır. Opak etkinlik, şeffaf etkinliğin yaşam döngüsü boyunca (etkinlik oluşturmadan yok etmeye kadar) kullanılabilir olmalıdır. Bu nedenle, trambolin etkinliklerinden izin istekleri başlatmayın.
Trambolin etkinliği bir izin isteği başlatırsa kullanıcı, izin iletişim kutusunu göremeyebilir. Bunun nedeni, kullanıcı iletişim kutusuna yanıt verme fırsatı bulmadan önce trambolin etkinliğinin yok edilmiş olması ve iletişim kutusu etkinliğinin boyutlarının ve konumunun yanlış hesaplanmış olmasıdır.
Uygulamalar, kullanıcı izin hakkında karar verene kadar görünür kalmaya devam eden etkinliklerden her zaman izin istekleri başlatmalıdır.
Yuvarlak köşeler
Bir etkinlik, arka plan şeffaflığını belirten bir stil nedeniyle veya etkinliğin içeriği mevcut ekran alanını doldurmadığı için şeffaf olabilir. Şeffaf bir etkinlik, mevcut ekran alanını dolduruyorsa sistem, cihaz üreticisi tarafından yapılandırıldığında etkinliğe otomatik olarak yuvarlak köşeler uygular. Ancak şeffaf bir etkinlik (ör. izin iletişim kutusu) mevcut alanı doldurmuyorsa yuvarlak köşelerin uygulanıp uygulanmayacağına karar vermek size kalmıştır.
İzin iletişim kutuları, iletişim kutusu düzeni genellikle LayoutParams.MATCH_PARENT yerine LayoutParams.WRAP_CONTENT kullandığından kullanılabilir ekran alanını doldurmaz.

Görünür başlatma etkinliğinin üzerine doğru şekilde yerleştirilmiş yuvarlak köşeli iletişim kutusu.
Uyumlulukla ilgili geçici çözüm
İletişim kutusu etkinliklerini başlatan etkinlikleri, kullanıcı iletişim kutusuna yanıt verene kadar görünür tutun.
Sistem, şeffaf bir etkinliğin, etkinlik yığınında şeffaf etkinliğin altındaki ilk opak etkinlikten tüm kısıtlamaları (aşağıdakilerle ilgili kısıtlamalar dahil) devralmasını sağlar:
- Boyut uyumluluğu modu
- Yön
- En Boy Oranı
Unity oyunları
Unity oyunları Android'de tam ekran veya çoklu pencere modunda çalışır. Ancak birçok Unity oyunu, uygulama çoklu pencere moduna alındığında odağını kaybeder ve içerik çizmeyi durdurur.
Sorun
Unity, Android'de çok pencereli modu desteklemek için Unity 2019.4'e Resizable Window
seçeneğini ekledi. Ancak ilk uygulama, çok pencereli modda etkinlik yaşam döngüsüne doğru şekilde tepki vermediğinden uygulama odağı kaybettiğinde UnityPlayer'ın oynatmayı askıya almasına neden oluyordu. Oynatıcı, siyah ekran veya oyunun son, donmuş karesini oluşturdu. Oyun, yalnızca kullanıcı ekrana dokunduğunda devam ettirildi. Unity motorunu kullanan birçok uygulama bu sorunla karşılaşıyor ve çoklu pencere modunda siyah pencere olarak oluşturuluyor.

Oyun, çoklu pencere modunda odağını kaybediyor ve siyah pencere olarak oluşturuluyor.
Optimizasyon
Unity'yi 2019.4.40 veya sonraki bir sürüme yükseltin ve oyununuzu yeniden dışa aktarın. Android oynatıcı ayarları bölümünde Resizable Window
seçeneğini işaretli tutun. Aksi takdirde, oyun çoklu pencere modunda tamamen görünür olsa bile odaklanılmadığında duraklatılır.

Oyun, odaklanılmamış olsa bile çoklu pencere modunda içeriği doğru şekilde oluşturuyor.
Uyumlulukla ilgili geçici çözüm
Cihaz üreticileri, çok pencereli modda bir uygulamaya sahte odaklanma etkinliği sağlamak için uygulama başına geçersiz kılma işlemini uygulayabilir.
OVERRIDE_ENABLE_COMPAT_FAKE_FOCUS
Geçersiz kılma, etkinliğin içeriği yeniden çizmesini ve karartılmamasını sağlar.
Pencereli görüntüleme
Uygulamalar masaüstü pencereleme ortamında çalışırken ek uyumluluk modlarıyla karşılaşabilir.
Kilitli yönlendirmeye sahip uygulamalar serbestçe yeniden boyutlandırılabilir. Etkinlik dikey yöne kilitlenmiş olsa bile kullanıcılar uygulamayı yatay yönde yeniden boyutlandırabilir.

Kilitli yönlendirmeye sahip uygulamalar serbestçe yeniden boyutlandırılabilir.
Ancak bir etkinlik yeniden boyutlandırılamaz (resizeableActivity = false) olarak tanımlanırsa etkinlik kullanıcı arayüzü, aynı en boy oranını koruyarak ölçeklendirilir.

Yeniden boyutlandırılamaz olarak belirtilen etkinliklerin kullanıcı arayüzü ölçeklendirilir.
Masaüstü pencere modunda kamera önizlemesi
Masaüstü pencereleme modundaki uygulamalar kamera önizlemesi başlattığında vizörün kullanıcı arayüzü, orijinal en boy oranı korunarak ölçeklendirilir. Uygulama penceresinin geri kalanı serbestçe yeniden boyutlandırılabilir.

Kamera vizörü içeren bir pencereyi yeniden boyutlandırma
Uygulamanızda uyumluluk sorunları olup olmadığını test etme
Uygulamanızı test etmek ve farklı form faktörlerinde nasıl davrandığını anlamak için aşağıdaki kaynaklardan yararlanın:
- Cihazlara yayınlama: Uygulamanızı Google veri merkezlerinde barındırılan üretim cihazlarında (referans cihazlar dahil) test etmek için Firebase destekli Android Cihazlara Yayınlama başlıklı makaleyi inceleyin.
- Android Studio'daki emülatörler: Referans cihazlar için emülatör oluşturma hakkında bilgi edinmek istiyorsanız Sanal cihaz oluşturma ve yönetme başlıklı makaleye bakın.
- Android Studio'da yeniden boyutlandırılabilir emülatör: Sanal cihazlara erişme hakkında bilgi edinmek için Android Emülatör'de uygulamaları çalıştırma başlıklı makaleyi inceleyin.
Sinemaskop
Her etkinliğin, uygulamaya sunulan tüm ekran alanını kullanabildiğini doğrulayın. Öncelikle test klasörünüzde aşağıdaki kodu beyan edin:
Kotlin
fun isLetterboxed(activity: AppCompatActivity): Boolean { if (isInMultiWindowMode) return false val wmc = WindowMetricsCalculator.getOrCreate() val currentBounds = wmc.computeCurrentWindowMetrics(this).bounds val maxBounds = wmc.computeMaximumWindowMetrics(this).bounds val isScreenPortrait = maxBounds.height() > maxBounds.width() return if (isScreenPortrait) { currentBounds.height() < maxBounds.height() } else { currentBounds.width() < maxBounds.width() } }
Java
public boolean isLetterboxed(AppCompatActivity activity) { if (activity.isInMultiWindowMode()) { return false; } WindowMetricsCalculator wmc = WindowMetricsCalculator.getOrCreate(); Rect currentBounds = wmc.computeCurrentWindowMetrics(activity).getBounds(); Rect maxBounds = wmc.computeMaximumWindowMetrics(activity).getBounds(); boolean isScreenPortrait = maxBounds.height() > maxBounds.width(); return (isScreenPortrait) ? currentBounds.height() < maxBounds.height() : currentBounds.width() < maxBounds.width(); }
Ardından, davranışı onaylamak için bir test çalıştırın ve hedef etkinliğin letterbox'a alınmadığından emin olun:
Kotlin
@get:Rule val activityRule = ActivityScenarioRule(MainActivity::class.java) @Test fun activity_launched_notLetterBoxed() { activityRule.scenario.onActivity { assertFalse(it.isLetterboxed()) } }
Java
@Rule public ActivityScenarioRule<MainActivity> rule = new ActivityScenarioRule<>(MainActivity.class); @Test public void activity_launched_notLetterBoxed() { try (ActivityScenario<MainActivity> scenario = ActivityScenario.launch(MainActivity.class)) { scenario.onActivity( activity -> { assertFalse(activity.isLetterboxed()); }); } }
İdeal olarak, bu tür bir testi yalnızca geçene ve uygulamanızın etkinliklerinin, uygulama için kullanılabilen ekran alanının tamamını kullandığını onaylayana kadar çalıştırın. Tutarlı davranış sağlamak için uygulamanızı tüm cihaz türlerinde test edin.
Uygulama bazında geçersiz kılmalar
Android, uygulamaların yapılandırılmış davranışını değiştiren geçersiz kılmalar sağlar. Örneğin, FORCE_RESIZE_APP
geçersiz kılma, uygulama manifestinde resizeableActivity="false"
belirtilmiş olsa bile sistemin boyut uyumluluğu modunu atlaması ve uygulamayı ekran boyutlarına uyacak şekilde yeniden boyutlandırması talimatını verir.
Cihaz üreticileri, belirli büyük ekranlı cihazlardaki belirli uygulamalara veya tüm uygulamalara geçersiz kılma uygular. Android 14 (API düzeyi 34) ve sonraki sürümlerde kullanıcılar, cihaz ayarları aracılığıyla uygulamalara geçersiz kılma işlemleri uygulayabilir. Android 16 (API düzeyi 36) ve sonraki sürümlerde, sanal cihaz sahipleri, sanal cihaz sahiplerinin yönettiği belirli cihazlarda geçersiz kılma işlemleri uygular.
Kullanıcıların uygulama başına geçersiz kılmaları
Android 14 ve sonraki sürümlerde, ayarlar menüsü sayesinde kullanıcılar uygulamaların en-boy oranını değiştirebilir. Referans cihazlar gibi büyük ekranlı cihazlarda menü uygulanır.
Menüde, cihaza yüklenen tüm uygulamaların listesi bulunur. Kullanıcılar bir uygulama seçer ve ardından uygulama en-boy oranını 3:4, 1:1, tam ekran veya cihaz üreticisi tarafından yapılandırılan başka bir değere ayarlar. Kullanıcılar, en-boy oranını uygulama manifestinde belirtilen uygulama varsayılanına da sıfırlayabilir.
Uygulamalar, aşağıdaki PackageManager.Property
etiketleri ayarlayarak uyumluluk geçersiz kılma özelliğini devre dışı bırakabilir:
PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE
Kullanıcı en-boy oranı uyumluluğu geçersiz kılma özelliğini devre dışı bırakmak için özelliğini uygulama manifestinize ekleyin ve değeri
false
olarak ayarlayın:<application> <property android:name="android.window. PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE" android:value="false" /> </application>
Uygulamanız, cihaz ayarlarındaki uygulamalar listesine dahil edilmez. Kullanıcılar, uygulamanın en boy oranını geçersiz kılamaz.
Özelliğin
true
olarak ayarlanmasının hiçbir etkisi yoktur.PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_FULLSCREEN_OVERRIDE
Kullanıcı en boy oranı uyumluluğu tam ekran seçeneğini devre dışı bırakmak için özelliği uygulama manifestinize ekleyin ve değeri
false
olarak ayarlayın:<application> <property android:name="android.window.PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_FULLSCREEN_OVERRIDE" android:value="false" /> </application>
Tam ekran seçeneği, cihaz ayarlarındaki en-boy oranı seçenekleri listesinden kaldırılır. Kullanıcılar, uygulamanızda tam ekran geçersiz kılma özelliğini kullanamaz.
Bu özelliği
true
olarak ayarlamanın hiçbir etkisi yoktur.
Uygulamanızı tüm ekranlar için optimize edin: Uygulamanızda en boy oranı kısıtlamaları ayarlamayın. Kullanılabilir ekran alanının miktarına göre farklı düzenleri desteklemek için pencere boyutu sınıflarını kullanın.
Cihaz başına uygulama geçersiz kılmaları
Cihaz üreticileri ve sanal cihaz sahipleri (güvenilir ve ayrıcalıklı uygulamaları seçin) tabletler, katlanabilir cihazlar, ChromeOS cihazlar ve araba ekranları dahil olmak üzere belirli cihazlarda uygulama bazında geçersiz kılma işlemleri uygular. Referans cihazlar, geçersiz kılma işlemlerinin bazılarını varsayılan olarak çeşitli uygulamalara uygulayabilir.
Uygulamalar, çoğu geçersiz kılma işleminden çıkabilir (aşağıdaki Uygulama başına geçersiz kılmalar tablosuna bakın).
Uyumluluk çerçevesini kullanarak geçersiz kılmalar etkin veya devre dışı bırakılmışken uygulamanızı test edebilirsiniz (bkz. Uyumluluk çerçevesi araçları). Etkinleştirildiğinde geçersiz kılmalar uygulamanın tamamı için geçerli olur.
Geçersiz kılmaları etkinleştirmek veya devre dışı bırakmak ve uygulamanıza hangi geçersiz kılmaların uygulanacağını belirlemek için Android Debug Bridge'i (adb) de kullanabilirsiniz.
Geçersiz kılmaları aşağıdaki gibi etkinleştirin veya devre dışı bırakın:
adb shell am compat enable/disable <override name/id> <package>
Referans cihazlar için uygulamanızda hangi geçersiz kılmaların geçerli olduğunu kontrol edin:
adb shell dumpsys platform_compat | grep <package name>
Aşağıdaki tabloda, kullanılabilecek geçersiz kılmalar ve uygulamanızı geçersiz kılmalara ihtiyaç duymayacak şekilde optimize etme ile ilgili yönergeler listelenmiştir. Bazı geçersiz kılma işlemlerini devre dışı bırakmak için uygulama manifestinize özellik işaretleri ekleyebilirsiniz.
Uygulama bazında geçersiz kılmalar | |||
---|---|---|---|
Tür | Ad | ID | Açıklama |
Yeniden boyutlandırılabilirlik | FORCE_RESIZE_APP | 174042936 | Yapılandırma değişikliklerinde uygulamadaki boyut uyumluluğu modunu atlar. |
FORCE_NON_RESIZE_APP | 181136395 | Yapılandırma değişikliklerinde uygulamayı boyut uyumluluk moduna zorlar. | |
En boy oranı | OVERRIDE_MIN_ASPECT_RATIO | 174042980 | Diğer en boy oranı geçersiz kılmalarını uygulamak için etkinleştirilmesi gereken Gatekeeper geçersiz kılma. |
OVERRIDE_MIN_ASPECT_RATIO_PORTRAIT_ONLY | 203647190 | Etkinleştirilirse (varsayılan), sınırlar kapsamı yalnızca portre etkinlikleriyle sınırlandırır. | |
OVERRIDE_MIN_ASPECT_RATIO_SMALL | 349045028 | Minimum en boy oranını 4:3 olarak değiştirir. | |
OVERRIDE_MIN_ASPECT_RATIO_MEDIUM | 180326845 | Minimum en boy oranını 3:2 olarak değiştirir. | |
OVERRIDE_MIN_ASPECT_RATIO_LARGE | 180326787 | Minimum en boy oranını 16:9 olarak değiştirir. | |
OVERRIDE_MIN_ASPECT_RATIO_TO_ALIGN_WITH_SPLIT_SCREEN | 208648326 | Minimum en boy oranını, ekran boyutunun% 50'sine (veya bölünmüş ekran en boy oranına) uyacak şekilde değiştirir. | |
OVERRIDE_MIN_ASPECT_RATIO_EXCLUDE_PORTRAIT_FULLSCREEN | 218959984 | Minimum en boy oranı geçersiz kılma özelliğini devre dışı bırakır. Böylece uygulamalar, cihaz dikey konumdayken tam ekran olur. | |
Yön | OVERRIDE_ANY_ORIENTATION | 265464455 | Tüm yönlendirmelerin geçersiz kılınmasını sağlar. |
OVERRIDE_ANY_ORIENTATION_TO_USER | 310816437 | Yön, yeniden boyutlandırılabilirlik ve en boy oranı kısıtlamalarını geçersiz kılar. | |
OVERRIDE_UNDEFINED_ORIENTATION_TO_PORTRAIT | 265452344 | Etkinliğin yönü tanımlanmamışsa yönü dikey olarak geçersiz kılar. | |
OVERRIDE_UNDEFINED_ORIENTATION_TO_NOSENSOR | 265451093 | Bir etkinliğin yönü tanımlanmadığında yönü nosensor (cihazın doğal yönünü kullan) olarak geçersiz kılar. |
|
OVERRIDE_LANDSCAPE_ORIENTATION_TO_REVERSE_LANDSCAPE | 266124927 | Yalnızca yatay moddaki uygulamaları 180 derece döndürür. | |
OVERRIDE_ORIENTATION_ONLY_FOR_CAMERA | 265456536 | Yönü geçersiz kılma kapsamını, uygulamanın kameraya bağlı olduğu zamanla sınırlar. | |
OVERRIDE_USE_DISPLAY_LANDSCAPE_NATURAL_ORIENTATION | 255940284 | Bir görev tam ekrandayken (mektup kutusu dahil) ekranı sabit yatay doğal yöne ayarlar. | |
OVERRIDE_ENABLE_COMPAT_IGNORE_REQUESTED_ORIENTATION | 254631730 | Dönüşüm sonsuz döngülerini önlemek için uygulamanın yönlendirme isteklerini yoksayar. | |
OVERRIDE_ENABLE_COMPAT_IGNORE_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED | 273509367 | Bir etkinlik yeniden başlatılırken tekrarlanan yönlendirme isteklerini yoksayar. Android, bir uygulamanın bir saniye içinde en az iki yeni yönlendirme istediğini algılarsa sistem bunu sonsuz döndürme döngüsü olarak değerlendirir ve geçersiz kılma işlemini uygular. | |
OVERRIDE_RESPECT_REQUESTED_ORIENTATION | 236283604 | Cihaz üreticisinin yönlendirme isteğini yoksayma ayarı devre dışı bırakılarak letterboxing önlenir. | |
Sandbox API'leri | NEVER_SANDBOX_DISPLAY_APIS | 184838306 | Tüm görüntüleme API'lerinin davranışının değiştirilmesini engeller. |
ALWAYS_SANDBOX_DISPLAY_APIS | 185004937 | Uygulamadaki Display API'lerinin uygulama sınırlarını döndürmesini zorlar. Display API'leri mantıksal görüntüleme alanı sınırlarını döndürür ancak bazen uygulama, Display API'lerinin uygulama sınırlarını döndürdüğünü varsayar ve bu da kullanıcı arayüzü sorunlarına yol açar. |
|
OVERRIDE_SANDBOX_VIEW_BOUNDS_APIS | 237531167 | Uygulamada kullanılan View API'lerinin uygulama sınırlarını döndürmesini zorunlu kılar. View API'leri mantıksal görüntüleme alanı sınırlarını döndürür ancak bazen uygulama, View API'lerinin uygulama sınırlarını döndürdüğünü varsayar ve bu da kullanıcı arayüzü sorunlarına yol açar. |
|
Kamera uyumluluğu | OVERRIDE_CAMERA_COMPAT_DISABLE_FORCE_ROTATION | 263959004 | Zorunlu döndürmeyi kapatır. Varsayılan olarak, kamera önizlemesi açıkken sabit yönlü tüm kamera uygulamaları zorunlu olarak döndürülür. |
OVERRIDE_CAMERA_COMPAT_DISABLE_REFRESH | 264304459 | Kamera önizlemesi zorla döndürüldüğünde uygulanan varsayılan zorunlu yenilemeyi kaldırır. | |
OVERRIDE_CAMERA_COMPAT_ENABLE_REFRESH_VIA_PAUSE | 264301586 | Kamera önizlemesi zorunlu olarak döndürüldüğünde, sabit yenilemeyi yumuşak yenilemeye geçirir. Bu, zorunlu döndürme sırasında durumu korumaya yardımcı olur. Varsayılan olarak, kamera önizlemesi zorla döndürüldüğünde Android, zorunlu yenileme uygular. Zorunlu yenileme, uygulamaların önceki durumlarını nasıl önbelleğe aldıklarına bağlı olarak uygulamaların durumunu kaybetmesine veya kararmasına neden olabilir. | |
OVERRIDE_CAMERA_LANDSCAPE_TO_PORTRAIT | 250678880 | İç ön kameranın görüntü arabelleğini kırpar. Geçersiz kılma devre dışı bırakılırsa iç ön kamera kırpma işlemi kaldırılır ve kamera önizlemesinin görüş alanı artırılır. Bazı katlanabilir cihazlarda (referans cihazlara bakın) varsayılan olarak sistem, iç ön kamera kullanılırken tüm kamera uygulamalarının kamera önizlemesini kırpar. | |
Çeşitli | OVERRIDE_ENABLE_COMPAT_FAKE_FOCUS | 263259275 | Uygulama, bölünmüş ekran modunda odak kaybedildiğinde karartılmasını önler. Uygulama, uygulama içeriğini çizmeden önce odaklanmayı bekler. Bu durum, uygulamanın donmasına veya kararmasına neden olabilir. Geçersiz kılma işlemi, Android'in uygulamaya sahte bir odak etkinliği göndermesini sağlar. Bu etkinlik, uygulamaya içeriği tekrar çizmeye başlaması için sinyal verir. |
FORCE_RESIZE_APP
Geçersiz kılmanın uygulandığı paketlerin yeniden boyutlandırılmasını ve çoklu pencere moduna girmesini zorunlu kılar. Tüm ekran boyutları için geçerlidir.
Uygulamalar, geçersiz kılma ile aynı sonucu nasıl elde edebilir?
Uygulama manifestinde android:resizeableActivity
özelliğini true
olarak ayarlayın.
Uygulamaları optimize etme
Uygulamaların tüm ekran boyutlarına ve en boy oranlarına uyum sağlaması için duyarlı/uyarlanabilir düzenler kullanın. Bkz. Farklı ekran boyutlarını destekleme.
Geçersiz kılmayı devre dışı bırakma veya bu özellikten çıkma
PROPERTY_COMPAT_ALLOW_RESIZEABLE_ACTIVITY_OVERRIDES
özellik işaretini false
olarak ayarlayın.
Geçersiz kılmayı ayarlamak için mülk işaretleri
<property android:name="android.window.PROPERTY_COMPAT_ALLOW_RESIZEABLE_ACTIVITY_OVERRIDES"
android:value="true|false"/>
Geçersiz kılmayı test etmek için adb komutları
Geçersiz kılmayı uygulamak ve uygulamayı yeniden boyutlandırılabilir hale getirmek için:
adb shell am compat enable FORCE_RESIZE_APP <package>
Geçersiz kılmayı kaldırmak için:
adb shell am compat disable FORCE_RESIZE_APP <package>
Not: Komutlar, geçersiz kılmayı yalnızca geçici olarak uygular veya kaldırır.
FORCE_NON_RESIZE_APP
Geçersiz kılmanın uygulandığı paketlerin yeniden boyutlandırılamamasına ve yapılandırma değişikliklerinde boyut uyumluluğu moduna girmesine neden olur. Tüm ekran boyutları için geçerlidir.
Uygulamalar, geçersiz kılma ile aynı sonucu nasıl elde edebilir?
Uygulama manifestinde hem android:resizeableActivity
özelliğini hem de android.supports_size_changes
meta veri işaretini false
olarak ayarlayın ve bir yön veya en-boy oranı kısıtlaması beyan edin.
Uygulamaları optimize etme
Yeniden boyutlandırıldığında düzgün çalışan tüm uygulamalarda android:resizeableActivity
veya android.supports_size_changes
, true
olarak ayarlanmalıdır.
Diğer uygulamalar, yeniden boyutlandırıldığında iyi çalışacak şekilde iyileştirilmelidir. android:resizeableActivity konusuna bakın.
Geçersiz kılmayı devre dışı bırakma veya bu özellikten çıkma
PROPERTY_COMPAT_ALLOW_RESIZEABLE_ACTIVITY_OVERRIDES
özellik işaretini false
olarak ayarlayın.
Geçersiz kılmayı ayarlamak için mülk işaretleri
<property android:name="android.window.PROPERTY_COMPAT_ALLOW_RESIZEABLE_ACTIVITY_OVERRIDES"
android:value="true|false"/>
Geçersiz kılmayı test etmek için adb komutları
Geçersiz kılmayı uygulamak ve uygulamayı yeniden boyutlandırılamaz hale getirmek için:
adb shell am compat enable FORCE_NON_RESIZE_APP <package>
Geçersiz kılmayı kaldırmak için:
adb shell am compat disable FORCE_NON_RESIZE_APP <package>
Not: Komutlar, geçersiz kılmayı yalnızca geçici olarak uygular veya kaldırır.
OVERRIDE_MIN_ASPECT_RATIO
Belirli bir minimum en boy oranını zorunlu kılan tüm geçersiz kılmaların kontrol noktasıdır.
Uygulamalar, geçersiz kılma ile aynı sonucu nasıl elde edebilir?
android:minAspectRatio
değerini etkinlik veya uygulama düzeyinde ayarlayın.
Uygulamaları optimize etme
Uygulamanızda en-boy oranı kısıtlamaları ayarlamayın. Uygulamanızın farklı ekran boyutlarını desteklediğinden emin olun. Uygulamanızın ekranda sahip olduğu alana göre farklı düzenleri desteklemek için pencere boyutu sınıflarını kullanın. Compose WindowSizeClass
API ve View
WindowSizeClass
API'ye bakın.
Geçersiz kılmayı devre dışı bırakma veya bu özellikten çıkma
En-boy oranı kısıtlaması belirtin veya PROPERTY_COMPAT_ALLOW_MIN_ASPECT_RATIO_OVERRIDE
özellik işaretini false
olarak ayarlayın.
Geçersiz kılmayı ayarlamak için mülk işaretleri
<property android:name="android.window.PROPERTY_COMPAT_ALLOW_MIN_ASPECT_RATIO_OVERRIDE"
android:value="false"/>
Geçersiz kılmayı test etmek için adb komutları
Geçersiz kılmayı uygulamak için:
adb shell am compat enable OVERRIDE_MIN_ASPECT_RATIO <package>
Geçersiz kılmayı kaldırmak için:
adb shell am compat disable OVERRIDE_MIN_ASPECT_RATIO <package>
Not: Komutlar, geçersiz kılmayı yalnızca geçici olarak uygular veya kaldırır.
OVERRIDE_MIN_ASPECT_RATIO_PORTRAIT_ONLY
Yalnızca portre yönüne sahip etkinlikler için belirli bir minimum en boy oranını zorunlu kılan uygulama ayarlarını kısıtlar. Varsayılan olarak etkindir ve yalnızca OVERRIDE_MIN_ASPECT_RATIO
da etkinse geçerli olur.
Uygulamalar, geçersiz kılma ile aynı sonucu nasıl elde edebilir?
OVERRIDE_MIN_ASPECT_RATIO konusuna bakın.
Uygulamaları optimize etme
OVERRIDE_MIN_ASPECT_RATIO konusuna bakın.
Geçersiz kılmayı devre dışı bırakma veya bu özellikten çıkma
OVERRIDE_MIN_ASPECT_RATIO konusuna bakın.
Geçersiz kılmayı ayarlamak için mülk işaretleri
OVERRIDE_MIN_ASPECT_RATIO konusuna bakın.
Geçersiz kılmayı test etmek için adb komutları
Geçersiz kılmayı uygulamak için:
adb shell am compat enable OVERRIDE_MIN_ASPECT_RATIO_PORTRAIT_ONLY <package>
Geçersiz kılmayı kaldırmak için:
adb shell am compat disable OVERRIDE_MIN_ASPECT_RATIO_PORTRAIT_ONLY <package>
Not: Komutlar, geçersiz kılmayı yalnızca geçici olarak uygular veya kaldırır.
OVERRIDE_MIN_ASPECT_RATIO_SMALL
Etkinliğin minimum en boy oranını küçük bir değere (4:3) ayarlar.
Uygulamalar, geçersiz kılma ile aynı sonucu nasıl elde edebilir?
OVERRIDE_MIN_ASPECT_RATIO konusuna bakın.
Uygulamaları optimize etme
OVERRIDE_MIN_ASPECT_RATIO konusuna bakın.
Geçersiz kılmayı devre dışı bırakma veya bu özellikten çıkma
OVERRIDE_MIN_ASPECT_RATIO konusuna bakın.
Geçersiz kılmayı ayarlamak için mülk işaretleri
OVERRIDE_MIN_ASPECT_RATIO konusuna bakın.
Geçersiz kılmayı test etmek için adb komutları
Geçersiz kılmayı uygulamak için:
adb shell am compat enable OVERRIDE_MIN_ASPECT_RATIO_SMALL <package>
Geçersiz kılmayı kaldırmak için:
adb shell am compat disable OVERRIDE_MIN_ASPECT_RATIO_SMALL <package>
Not: Komutlar, geçersiz kılmayı yalnızca geçici olarak uygular veya kaldırır.
OVERRIDE_MIN_ASPECT_RATIO_MEDIUM
Etkinliğin minimum en boy oranını orta bir değere (3:2) ayarlar.
Uygulamalar, geçersiz kılma ile aynı sonucu nasıl elde edebilir?
OVERRIDE_MIN_ASPECT_RATIO konusuna bakın.
Uygulamaları optimize etme
OVERRIDE_MIN_ASPECT_RATIO konusuna bakın.
Geçersiz kılmayı devre dışı bırakma veya bu özellikten çıkma
OVERRIDE_MIN_ASPECT_RATIO konusuna bakın.
Geçersiz kılmayı ayarlamak için mülk işaretleri
OVERRIDE_MIN_ASPECT_RATIO konusuna bakın.
Geçersiz kılmayı test etmek için adb komutları
Geçersiz kılmayı uygulamak için:
adb shell am compat enable OVERRIDE_MIN_ASPECT_RATIO_MEDIUM <package>
Geçersiz kılmayı kaldırmak için:
adb shell am compat disable OVERRIDE_MIN_ASPECT_RATIO_MEDIUM <package>
Not: Komutlar, geçersiz kılmayı yalnızca geçici olarak uygular veya kaldırır.
OVERRIDE_MIN_ASPECT_RATIO_LARGE
Etkinliğin minimum en boy oranını büyük bir değere (16:9) ayarlar.
Uygulamalar, geçersiz kılma ile aynı sonucu nasıl elde edebilir?
OVERRIDE_MIN_ASPECT_RATIO konusuna bakın.
Uygulamaları optimize etme
OVERRIDE_MIN_ASPECT_RATIO konusuna bakın.
Geçersiz kılmayı devre dışı bırakma veya bu özellikten çıkma
OVERRIDE_MIN_ASPECT_RATIO konusuna bakın.
Geçersiz kılmayı ayarlamak için mülk işaretleri
OVERRIDE_MIN_ASPECT_RATIO konusuna bakın.
Geçersiz kılmayı test etmek için adb komutları
Geçersiz kılmayı uygulamak için:
adb shell am compat enable OVERRIDE_MIN_ASPECT_RATIO_LARGE <package>
Geçersiz kılmayı kaldırmak için:
adb shell am compat disable OVERRIDE_MIN_ASPECT_RATIO_LARGE <package>`
Not: Komutlar, geçersiz kılmayı yalnızca geçici olarak uygular veya kaldırır.
OVERRIDE_MIN_ASPECT_RATIO_TO_ALIGN_WITH_SPLIT_SCREEN
Bölünmüş ekran en boy oranının kullanılmasını sağlar. Uygulamanın, bölünmüş ekran modunda mevcut alanın tamamını kullanmasına izin vererek siyah bant oluşumunu önler.
Uygulamalar, geçersiz kılma ile aynı sonucu nasıl elde edebilir?
OVERRIDE_MIN_ASPECT_RATIO konusuna bakın.
Uygulamaları optimize etme
OVERRIDE_MIN_ASPECT_RATIO konusuna bakın.
Geçersiz kılmayı devre dışı bırakma veya bu özellikten çıkma
OVERRIDE_MIN_ASPECT_RATIO konusuna bakın.
Geçersiz kılmayı ayarlamak için mülk işaretleri
OVERRIDE_MIN_ASPECT_RATIO konusuna bakın.
Geçersiz kılmayı test etmek için adb komutları
Geçersiz kılmayı uygulamak için:
adb shell am compat enable OVERRIDE_MIN_ASPECT_RATIO_TO_ALIGN_WITH_SPLIT_SCREEN <package>
Geçersiz kılmayı kaldırmak için:
adb shell am compat disable OVERRIDE_MIN_ASPECT_RATIO_TO_ALIGN_WITH_SPLIT_SCREEN <package>
Not: Komutlar, geçersiz kılmayı yalnızca geçici olarak uygular veya kaldırır.
OVERRIDE_MIN_ASPECT_RATIO_EXCLUDE_PORTRAIT_FULLSCREEN
Mevcut tüm ekran alanını kullanmak için dikey tam ekranda minimum en boy oranı geçersiz kılma özelliğini devre dışı bırakır.
Uygulamalar, geçersiz kılma ile aynı sonucu nasıl elde edebilir?
OVERRIDE_MIN_ASPECT_RATIO konusuna bakın.
Uygulamaları optimize etme
OVERRIDE_MIN_ASPECT_RATIO konusuna bakın.
Geçersiz kılmayı devre dışı bırakma veya bu özellikten çıkma
OVERRIDE_MIN_ASPECT_RATIO konusuna bakın.
Geçersiz kılmayı ayarlamak için mülk işaretleri
OVERRIDE_MIN_ASPECT_RATIO konusuna bakın.
Geçersiz kılmayı test etmek için adb komutları
Geçersiz kılmayı uygulamak için:
adb shell am compat enable OVERRIDE_MIN_ASPECT_RATIO_EXCLUDE_PORTRAIT_FULLSCREEN <package>
Geçersiz kılmayı kaldırmak için:
adb shell am compat disable OVERRIDE_MIN_ASPECT_RATIO_EXCLUDE_PORTRAIT_FULLSCREEN <package>
Not: Komutlar, geçersiz kılmayı yalnızca geçici olarak uygular veya kaldırır.
OVERRIDE_ANY_ORIENTATION
Aşağıdaki geçersiz kılmaların herhangi bir yönü geçersiz kılmasını sağlar:
- OVERRIDE_UNDEFINED_ORIENTATION_TO_PORTRAIT
- OVERRIDE_UNDEFINED_ORIENTATION_TO_NOSENSOR
- OVERRIDE_LANDSCAPE_ORIENTATION_TO_REVERSE_LANDSCAPE
Uygulamalar, geçersiz kılma ile aynı sonucu nasıl elde edebilir?
activity:screenOrientation
manifest özelliğini ayarlayın veya Activity#setRequestedOrientation()
API'sini kullanın.
Uygulamaları optimize etme
Uygulamanız tüm yönleri desteklemelidir. Yön değişikliği, yapılandırma değişikliğidir ve iki şekilde ele alınabilir: sistemin uygulamayı yok edip yeniden oluşturmasına izin verme veya yapılandırma değişikliklerini kendiniz yönetme. Yapılandırma değişikliklerini kendiniz yönetiyorsanız ViewModel
kullanılarak uygulama durumu korunabilir. Çok sınırlı durumlarda, yönü yalnızca küçük ekranlarda kilitlemeye karar verebilirsiniz. Ancak bu durumda, kullanıcının uygulamayı gerektiği gibi döndürmesine izin vermek kadar iyi ölçeklenmeyebilir. Android 12L ve sonraki sürümlerde,
sabit yönlendirme, cihaz yapılandırmasıyla geçersiz kılınabilir. Yapılandırma değişikliklerini işleme ve tüm yönleri destekleme hakkında daha fazla bilgi için Yapılandırma değişikliklerini işleme, ViewModel'e genel bakış ve Uygulama yönü telefonlarda kısıtlanmış ancak büyük ekranlı cihazlarda kısıtlanmamış başlıklı makaleleri inceleyin.
Geçersiz kılmayı devre dışı bırakma veya bu özellikten çıkma
PROPERTY_COMPAT_ALLOW_ORIENTATION_OVERRIDE
özellik işaretini false
olarak ayarlayın.
Geçersiz kılmayı ayarlamak için mülk işaretleri
<property android:name="android.window.PROPERTY_COMPAT_ALLOW_ORIENTATION_OVERRIDE"
android:value="true|false"/>
Geçersiz kılmayı test etmek için adb komutları
Geçersiz kılmayı uygulamak için:
adb shell am compat enable OVERRIDE_ANY_ORIENTATION <package>
Geçersiz kılmayı kaldırmak için:
adb shell am compat disable OVERRIDE_ANY_ORIENTATION <package>
Not: Komutlar, geçersiz kılmayı yalnızca geçici olarak uygular veya kaldırır.
OVERRIDE_ANY_ORIENTATION_TO_USER
Uygulamanın kullanılabilir ekran alanını doldurmasına olanak tanır. Uygulama manifestinde belirtilen tüm yön, yeniden boyutlandırılabilirlik ve en boy oranı kısıtlamalarını geçersiz kılar. Ayrıca, Activity#setRequestedOrientation()
veya Activity#getRequestedOrientation()
numaralarına yapılan aramaları da yok sayar.
Uygulamalar, geçersiz kılma ile aynı sonucu nasıl elde edebilir?
android:screenOrientation
manifest özelliğini ayarlamayın veya özelliği"user"
olarak ayarlayın.android:resizeableActivity
manifest özelliğinitrue
olarak ayarlayın.Küçük ekranlarda, çoklu pencere modunu
android:resizeableActivity=false
ile devre dışı bırakırken uygulamanın yeniden boyutlandırılmasını desteklemek içinandroid.supports_size_changes
meta veri işaretinitrue
olarak ayarlayın.minAspectRatio
vemaxAspectRatio
değerlerini ayarlamayın.
Uygulamaları optimize etme
Uygulamanızın tüm yönleri desteklemesini sağlayın. Uygulamanızın manifestinde bir screenOrientation
belirtimi ayarlamayın. Uygulamanızın manifestindeki android:resizeableActivity
özelliğini true
olarak ayarlayarak uygulamanın yeniden boyutlandırılmasını, çoklu pencere modunu ve tüm ekran en-boy oranlarını destekleyin. Bkz.
Farklı ekran boyutlarını destekleme.
Geçersiz kılmayı devre dışı bırakma veya bu özellikten çıkma
OVERRIDE_ANY_ORIENTATION
sayfasına göz atın.
Geçersiz kılmayı ayarlamak için mülk işaretleri
OVERRIDE_ANY_ORIENTATION
sayfasına göz atın.
Geçersiz kılmayı test etmek için adb komutları
Geçersiz kılmayı uygulamak için:
adb shell am compat enable OVERRIDE_ANY_ORIENTATION_TO_USER <package>
Geçersiz kılmayı kaldırmak için:
adb shell am compat disable OVERRIDE_ANY_ORIENTATION_TO_USER <package>
Not: Komutlar, geçersiz kılmayı yalnızca geçici olarak uygular veya kaldırır.
OVERRIDE_UNDEFINED_ORIENTATION_TO_PORTRAIT
Paketteki tüm etkinlikler için portre yönünü etkinleştirir. OVERRIDE_ANY_ORIENTATION etkinleştirilmediği sürece geçersiz kılma yalnızca etkinlik tarafından başka bir sabit yön belirtilmediğinde kullanılır.
Uygulamalar, geçersiz kılma ile aynı sonucu nasıl elde edebilir?
OVERRIDE_ANY_ORIENTATION
sayfasına göz atın.
Uygulamaları optimize etme
OVERRIDE_ANY_ORIENTATION
sayfasına göz atın.
Geçersiz kılmayı devre dışı bırakma veya bu özellikten çıkma
OVERRIDE_ANY_ORIENTATION
sayfasına göz atın.
Geçersiz kılmayı ayarlamak için mülk işaretleri
OVERRIDE_ANY_ORIENTATION
sayfasına göz atın.
Geçersiz kılmayı test etmek için adb komutları
Geçersiz kılmayı uygulamak için:
adb shell am compat enable OVERRIDE_UNDEFINED_ORIENTATION_TO_PORTRAIT <package>
Geçersiz kılmayı kaldırmak için:
adb shell am compat disable OVERRIDE_UNDEFINED_ORIENTATION_TO_PORTRAIT <package>
Not: Komutlar, geçersiz kılmayı yalnızca geçici olarak uygular veya kaldırır.
OVERRIDE_UNDEFINED_ORIENTATION_TO_NOSENSOR
Paketteki tüm aktiviteler için nosensor yönlendirmesini etkinleştirir. OVERRIDE_ANY_ORIENTATION etkinleştirilmediği sürece geçersiz kılma yalnızca etkinlik tarafından başka bir sabit yön belirtilmediğinde kullanılır.
Uygulamalar, geçersiz kılma ile aynı sonucu nasıl elde edebilir?
OVERRIDE_ANY_ORIENTATION
sayfasına göz atın.
Uygulamaları optimize etme
OVERRIDE_ANY_ORIENTATION
sayfasına göz atın.
Geçersiz kılmayı devre dışı bırakma veya bu özellikten çıkma
OVERRIDE_ANY_ORIENTATION
sayfasına göz atın.
Geçersiz kılmayı ayarlamak için mülk işaretleri
OVERRIDE_ANY_ORIENTATION
sayfasına göz atın.
Geçersiz kılmayı test etmek için adb komutları
Geçersiz kılmayı uygulamak için:
adb shell am compat enable OVERRIDE_UNDEFINED_ORIENTATION_TO_NOSENSOR <package>
Geçersiz kılmayı kaldırmak için:
adb shell am compat disable OVERRIDE_UNDEFINED_ORIENTATION_TO_NOSENSOR <package>
Not: Komutlar, geçersiz kılmayı yalnızca geçici olarak uygular veya kaldırır.
OVERRIDE_LANDSCAPE_ORIENTATION_TO_REVERSE_LANDSCAPE
Paketteki tüm etkinlikler için reverseLandscape yönünü etkinleştirir. OVERRIDE_ANY_ORIENTATION etkinleştirilmediği sürece geçersiz kılma yalnızca etkinlik tarafından başka bir sabit yön belirtilmediğinde kullanılır.
Uygulamalar, geçersiz kılma ile aynı sonucu nasıl elde edebilir?
OVERRIDE_ANY_ORIENTATION
sayfasına göz atın.
Uygulamaları optimize etme
OVERRIDE_ANY_ORIENTATION
sayfasına göz atın.
Geçersiz kılmayı devre dışı bırakma veya bu özellikten çıkma
OVERRIDE_ANY_ORIENTATION
sayfasına göz atın.
Geçersiz kılmayı ayarlamak için mülk işaretleri
OVERRIDE_ANY_ORIENTATION
sayfasına göz atın.
Geçersiz kılmayı test etmek için adb komutları
Geçersiz kılmayı uygulamak için:
adb shell am compat enable OVERRIDE_LANDSCAPE_ORIENTATION_TO_REVERSE_LANDSCAPE <package>
Geçersiz kılmayı kaldırmak için:
adb shell am compat disable OVERRIDE_LANDSCAPE_ORIENTATION_TO_REVERSE_LANDSCAPE <package>
Not: Komutlar, geçersiz kılmayı yalnızca geçici olarak uygular veya kaldırır.
OVERRIDE_ORIENTATION_ONLY_FOR_CAMERA
Sınırlar OVERRIDE_UNDEFINED_ORIENTATION_TO_PORTRAIT, OVERRIDE_UNDEFINED_ORIENTATION_TO_NOSENSOR, ve OVERRIDE_LANDSCAPE_ORIENTATION_TO_REVERSE_LANDSCAPE geçersiz kılma işlemleri yalnızca kamera bağlantısı etkin olduğunda geçerli olur.
Uygulamalar, geçersiz kılma ile aynı sonucu nasıl elde edebilir?
OVERRIDE_ANY_ORIENTATION
sayfasına göz atın.
Uygulamaları optimize etme
OVERRIDE_ANY_ORIENTATION
sayfasına göz atın.
Geçersiz kılmayı devre dışı bırakma veya bu özellikten çıkma
OVERRIDE_ANY_ORIENTATION
sayfasına göz atın.
Geçersiz kılmayı ayarlamak için mülk işaretleri
OVERRIDE_ANY_ORIENTATION
sayfasına göz atın.
Geçersiz kılmayı test etmek için adb komutları
Geçersiz kılmayı uygulamak için:
adb shell am compat enable OVERRIDE_ORIENTATION_ONLY_FOR_CAMERA <package>
Geçersiz kılmayı kaldırmak için:
adb shell am compat disable OVERRIDE_ORIENTATION_ONLY_FOR_CAMERA <package>
Not: Komutlar, geçersiz kılmayı yalnızca geçici olarak uygular veya kaldırır.
OVERRIDE_USE_DISPLAY_LANDSCAPE_NATURAL_ORIENTATION
Aşağıdaki koşullar karşılandığında ekran yönünü doğal yatay yönle sınırlar:
- Etkinlik tam ekran
- Kapsam dışında bırakma bileşeni özelliği
PROPERTY_COMPAT_ALLOW_DISPLAY_ORIENTATION_OVERRIDE
etkin değil - Cihaz üreticisinin yönlendirme isteğini yoksayma ayarı ekran için etkinleştirilmiş
- Ekranın doğal yönü yataydır.
Uygulamalar, geçersiz kılma ile aynı sonucu nasıl elde edebilir?
Geçerli değil. Sorun, uygulama mantığında çözülmelidir.
Uygulamaları optimize etme
OVERRIDE_ANY_ORIENTATION
sayfasına göz atın.
Geçersiz kılmayı devre dışı bırakma veya bu özellikten çıkma
PROPERTY_COMPAT_ALLOW_DISPLAY_ORIENTATION_OVERRIDE
özellik işaretini false
olarak ayarlayın.
Geçersiz kılmayı ayarlamak için mülk işaretleri
<property android:name="android.window.PROPERTY_COMPAT_ALLOW_DISPLAY_ORIENTATION_OVERRIDE"
android:value="true|false"/>
Geçersiz kılmayı test etmek için adb komutları
Geçersiz kılmayı uygulamak için:
adb shell am compat enable OVERRIDE_USE_DISPLAY_LANDSCAPE_NATURAL_ORIENTATION <package>
Geçersiz kılmayı kaldırmak için:
adb shell am compat disable OVERRIDE_USE_DISPLAY_LANDSCAPE_NATURAL_ORIENTATION <package>
Not: Komutlar, geçersiz kılmayı yalnızca geçici olarak uygular veya kaldırır.
OVERRIDE_ENABLE_COMPAT_IGNORE_REQUESTED_ORIENTATION
Uygulama yeniden başlatılırken veya etkin bir kamera uyumluluğu işlemi varken uygulamanın Activity#setRequestedOrientation()
'ı çağırmasına yanıt olarak uygulama yönünün güncellenmesini atlayan uyumluluk politikasını etkinleştirir.
Uygulamalar, geçersiz kılma ile aynı sonucu nasıl elde edebilir?
PROPERTY_COMPAT_IGNORE_REQUESTED_ORIENTATION
özellik işaretini true
olarak ayarlayın.
Uygulamaları optimize etme
OVERRIDE_ANY_ORIENTATION
sayfasına göz atın.
Geçersiz kılmayı devre dışı bırakma veya bu özellikten çıkma
PROPERTY_COMPAT_IGNORE_REQUESTED_ORIENTATION
özellik işaretini false
olarak ayarlayın.
Geçersiz kılmayı ayarlamak için mülk işaretleri
<property android:name="android.window.PROPERTY_COMPAT_IGNORE_REQUESTED_ORIENTATION"
android:value="true|false"/>
Geçersiz kılmayı test etmek için adb komutları
Geçersiz kılmayı uygulamak için:
adb shell am compat enable OVERRIDE_ENABLE_COMPAT_IGNORE_REQUESTED_ORIENTATION <package>
Geçersiz kılmayı kaldırmak için:
adb shell am compat disable OVERRIDE_ENABLE_COMPAT_IGNORE_REQUESTED_ORIENTATION <package>
Not: Komutlar, geçersiz kılmayı yalnızca geçici olarak uygular veya kaldırır.
OVERRIDE_ENABLE_COMPAT_IGNORE_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED
Bir etkinlik sabit yön için letterbox'a alınmamışsa uygulamanın bir saniyede Activity#setRequestedOrientation()
işlevini ikiden fazla kez çağırmasına yanıt olarak uygulamanın istenen yönünü yoksayan uyumluluk politikasını etkinleştirir.
Uygulamalar, geçersiz kılma ile aynı sonucu nasıl elde edebilir?
Geçerli değil. Sorun, uygulama mantığında çözülmelidir.
Uygulamaları optimize etme
OVERRIDE_ANY_ORIENTATION
sayfasına göz atın.
Geçersiz kılmayı devre dışı bırakma veya bu özellikten çıkma
Mülk işaretini
PROPERTY_COMPAT_ALLOW_IGNORING_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED
olarak
false
ayarlayın.
Geçersiz kılmayı ayarlamak için mülk işaretleri
<property android:name="android.window.PROPERTY_COMPAT_ALLOW_IGNORING_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED"
android:value="false"/>
Geçersiz kılmayı test etmek için adb komutları
Geçersiz kılmayı uygulamak için:
adb shell am compat enable OVERRIDE_ENABLE_COMPAT_IGNORE_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED <package>
Geçersiz kılmayı kaldırmak için:
adb shell am compat disable OVERRIDE_ENABLE_COMPAT_IGNORE_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED <package>
Not: Komutlar, geçersiz kılmayı yalnızca geçici olarak uygular veya kaldırır.
OVERRIDE_RESPECT_REQUESTED_ORIENTATION
Paketleri, cihaz üreticileri tarafından bir ekran alanı veya ekranın tamamı için etkinleştirilebilen yönlendirme isteğini yoksayma davranışının dışında tutar.
Uygulamalar, geçersiz kılma ile aynı sonucu nasıl elde edebilir?
Geçerli değil. Sorun, uygulama mantığında çözülmelidir.
Uygulamaları optimize etme
OVERRIDE_ANY_ORIENTATION
sayfasına göz atın.
Geçersiz kılmayı devre dışı bırakma veya bu özellikten çıkma
Devre dışı bırakılamaz. Uygulama, cihaz üreticisinin yönlendirme isteğini yoksayma ayarının etkin olduğu bir cihazla uyumlu değilse geçersiz kılmayı devre dışı bırakmak tehlikeli olabilir. Geçersiz kılmayı devre dışı bırakmak için Android Developer Relations ile iletişime geçin.
Geçersiz kılmayı ayarlamak için mülk işaretleri
Bu geçersiz kılma için mülk işareti yok.
Geçersiz kılmayı test etmek için adb komutları
Geçersiz kılmayı uygulamak için:
adb shell am compat enable OVERRIDE_RESPECT_REQUESTED_ORIENTATION <package>
Geçersiz kılmayı kaldırmak için:
adb shell am compat disable OVERRIDE_RESPECT_REQUESTED_ORIENTATION <package>
Not: Komutlar, geçersiz kılmayı yalnızca geçici olarak uygular veya kaldırır.
NEVER_SANDBOX_DISPLAY_APIS
Paketlerin, mektup kutusu veya boyut uyumluluk modu etkinliği için hiçbir zaman Display
API korumalı alanının uygulanmasını zorunlu kılar. Display
API'leri
görüntüleme alanı sınırları sağlamaya devam eder.
Uygulamalar, geçersiz kılma ile aynı sonucu nasıl elde edebilir?
Etkinlikleri yeniden boyutlandırılabilir olarak bildirmek için android:resizeableActivity
manifest özelliğini true
veya android.supports_size_changes
meta veri işaretini true
olarak ayarlayın.
Uygulamaları optimize etme
Tamamen yeniden boyutlandırılabilir olduğunu belirten uygulamalar, kullanıcı arayüzü öğelerini konumlandırmak için hiçbir zaman ekran boyutuna güvenmemelidir. Uygulamanızı, WindowMetrics
sağlayan güncel API'lere taşıyın. Jetpack Compose kullanıyorsanız uygulamanın mevcut ekranda ne kadar alan kapladığına göre kullanıcı arayüzünü çizmek için WindowSizeClass
API'sinden yararlanın. Pencere boyutu sınıflarını kullanma başlıklı makaleyi inceleyin.
Geçersiz kılmayı devre dışı bırakma veya bu özellikten çıkma
Devre dışı bırakılamaz. Desteği sonlandırılan API'lerden geçiş yapın.
Geçersiz kılmayı ayarlamak için mülk işaretleri
Bu geçersiz kılma için mülk işareti yok.
Geçersiz kılmayı test etmek için adb komutları
Geçersiz kılmayı uygulamak için:
adb shell am compat enable NEVER_SANDBOX_DISPLAY_APIS <package>
Geçersiz kılmayı kaldırmak için:
adb shell am compat disable NEVER_SANDBOX_DISPLAY_APIS <package>
Not: Komutlar, geçersiz kılmayı yalnızca geçici olarak uygular veya kaldırır.
ALWAYS_SANDBOX_DISPLAY_APIS
Pencerelendirme modundan bağımsız olarak paketlerin her zaman Display
API korumalı alanına sahip olmasını zorunlu kılar. Display
API'leri her zaman uygulama sınırlarını sağlar.
Uygulamalar, geçersiz kılma ile aynı sonucu nasıl elde edebilir?
android:resizeableActivity
özelliğini false
veya android.supports_size_changes
meta veri işaretini false
olarak ayarlayarak etkinlikleri yeniden boyutlandırılamaz olarak bildirin.
Uygulamaları optimize etme
Tamamen yeniden boyutlandırılabilir olduğunu belirten uygulamalar, kullanıcı arayüzü öğelerini konumlandırmak için hiçbir zaman ekran boyutuna güvenmemelidir. Uygulamanızı, desteği sonlandırılan API'lerden WindowMetrics
sağlayan güncel API'lere taşıyın. WindowMetricsCalculator
sayfasına göz atın.
Geçersiz kılmayı devre dışı bırakma veya bu özellikten çıkma
Devre dışı bırakılamaz. Desteği sonlandırılan API'lerden geçiş yapın.
Geçersiz kılmayı ayarlamak için mülk işaretleri
Bu geçersiz kılma için mülk işareti yok.
Geçersiz kılmayı test etmek için adb komutları
Geçersiz kılmayı uygulamak için:
adb shell am compat enable ALWAYS_SANDBOX_DISPLAY_APIS <package>
Geçersiz kılmayı kaldırmak için:
adb shell am compat disable ALWAYS_SANDBOX_DISPLAY_APIS <package>
Not: Komutlar, geçersiz kılmayı yalnızca geçici olarak uygular veya kaldırır.
OVERRIDE_SANDBOX_VIEW_BOUNDS_APIS
Paketlerin, aşağıdaki View
API'leri etkinlik sınırlarına göre sanal ortama almasını zorunlu kılar:
Uygulamalar, geçersiz kılma ile aynı sonucu nasıl elde edebilir?
Uygulama penceresinin sınırlarını ve uygulama penceresine göre göreceli uzaklıkları sağlayan API'leri kullanarak uygulama kodundaki sorunu çözün. Cihaz ekranının sınırlarını ve cihaz ekranına göre göreceli uzaklıkları sağlayan API'leri kullanmayın.
Uygulamaları optimize etme
Uygulamalar, View
API'lerini kullanmalı, letterboxing ve çoklu pencere modunun uygulamaya uygulanma olasılığını göz önünde bulundurmalıdır. WindowMetricsCalculator
bölümüne bakın.
Geçersiz kılmayı devre dışı bırakma veya bu özellikten çıkma
PROPERTY_COMPAT_ALLOW_SANDBOXING_VIEW_BOUNDS_APIS
özellik işaretini false
olarak ayarlayın.
Geçersiz kılmayı ayarlamak için mülk işaretleri
<property android:name="android.window.PROPERTY_COMPAT_ALLOW_SANDBOXING_VIEW_BOUNDS_APIS"
android:value="false"/>
Geçersiz kılmayı test etmek için adb komutları
Geçersiz kılmayı uygulamak için:
adb shell am compat enable OVERRIDE_SANDBOX_VIEW_BOUNDS_APIS <package>
Geçersiz kılmayı kaldırmak için:
adb shell am compat disable OVERRIDE_SANDBOX_VIEW_BOUNDS_APIS <package>
Not: Komutlar, geçersiz kılmayı yalnızca geçici olarak uygular veya kaldırır.
OVERRIDE_CAMERA_COMPAT_DISABLE_FORCE_ROTATION
Zorunlu döndürmeyi devre dışı bırakır. Bazı uygulamalarda kullanıcı deneyimini iyileştirir.
Uygulamalar, geçersiz kılma ile aynı sonucu nasıl elde edebilir?
PROPERTY_CAMERA_COMPAT_ALLOW_FORCE_ROTATION
özellik işaretini false
olarak ayarlayın.
Uygulamaları optimize etme
Önbelleğe alınan kamera sensörü yönüne veya cihaz bilgilerine güvenmeyin. Kamera uyumluluğuyla ilgili yönergeler için Introducing Camera Viewfinder (Kamera Vizörünü Tanıtıyoruz) ve Support resizable surfaces in your camera app (Kamera uygulamanızda yeniden boyutlandırılabilir yüzeyleri destekleme) başlıklı makaleleri inceleyin.
Geçersiz kılmayı devre dışı bırakma veya bu özellikten çıkma
PROPERTY_CAMERA_COMPAT_ALLOW_FORCE_ROTATION
özellik işaretini true
olarak ayarlayın.
Geçersiz kılmayı ayarlamak için mülk işaretleri
<property android:name="android.window.PROPERTY_CAMERA_COMPAT_ALLOW_FORCE_ROTATION"
android:value="true|false"/>
Geçersiz kılmayı test etmek için adb komutları
Döndürmeyi zorlamayı kaldıran geçersiz kılmayı uygulamak için:
adb shell am compat enable OVERRIDE_CAMERA_COMPAT_DISABLE_FORCE_ROTATION <package>
Geçersiz kılmayı kaldırmak için (böylece zorunlu döndürme gerçekleşebilir):
adb shell am compat disable OVERRIDE_CAMERA_COMPAT_DISABLE_FORCE_ROTATION <package>
Not: Komutlar, geçersiz kılmayı yalnızca geçici olarak uygular veya kaldırır.
OVERRIDE_CAMERA_COMPAT_DISABLE_REFRESH
Döndürme işlemi zorlandıktan sonra etkinlik yenilemeyi devre dışı bırakır. Yenileme, uygulamalarda durum kaybına neden olduğunda kullanıcı deneyimini iyileştirir.
Uygulamalar, geçersiz kılma ile aynı sonucu nasıl elde edebilir?
PROPERTY_CAMERA_COMPAT_ALLOW_REFRESH
özellik işaretini false
olarak ayarlayın.
Uygulamaları optimize etme
OVERRIDE_CAMERA_COMPAT_DISABLE_FORCE_ROTATION sayfasına bakın.
Geçersiz kılmayı devre dışı bırakma veya bu özellikten çıkma
PROPERTY_CAMERA_COMPAT_ALLOW_REFRESH
özellik işaretini true
olarak ayarlayın.
Geçersiz kılmayı ayarlamak için mülk işaretleri
<property android:name="android.window.PROPERTY_CAMERA_COMPAT_ALLOW_REFRESH"
android:value="true|false"/>
Geçersiz kılmayı test etmek için adb komutları
Etkinlik yenilemeyi kaldıran geçersiz kılmayı uygulamak için:
adb shell am compat enable OVERRIDE_CAMERA_COMPAT_DISABLE_REFRESH <package>
Etkinliğin yenilenmesine izin veren geçersiz kılmayı kaldırmak için:
adb shell am compat disable OVERRIDE_CAMERA_COMPAT_DISABLE_REFRESH <package>
Not: Komutlar, geçersiz kılmayı yalnızca geçici olarak uygular veya kaldırır.
OVERRIDE_CAMERA_COMPAT_ENABLE_REFRESH_VIA_PAUSE
Uygulandığı paketlerin, kamera uyumluluğu için zorunlu döndürmeden sonra onResume()
→ onStop()
→ onResume()
yerine onResume()
→ onPause()
→ onResume()
döngüsü kullanarak etkinlik yenilemesi yapmasını sağlar.
Uygulamalar, geçersiz kılma ile aynı sonucu nasıl elde edebilir?
PROPERTY_CAMERA_COMPAT_ENABLE_REFRESH_VIA_PAUSE
özellik işaretini true
olarak ayarlayın.
Uygulamaları optimize etme
OVERRIDE_CAMERA_COMPAT_DISABLE_FORCE_ROTATION sayfasına bakın.
Geçersiz kılmayı devre dışı bırakma veya bu özellikten çıkma
PROPERTY_CAMERA_COMPAT_ENABLE_REFRESH_VIA_PAUSE
özellik işaretini false
olarak ayarlayın.
Geçersiz kılmayı ayarlamak için mülk işaretleri
<property android:name="android.window.PROPERTY_CAMERA_COMPAT_ENABLE_REFRESH_VIA_PAUSE"
android:value="true|false"/>
Geçersiz kılmayı test etmek için adb komutları
Geçersiz kılmayı uygulamak için:
adb shell am compat enable OVERRIDE_CAMERA_COMPAT_ENABLE_REFRESH_VIA_PAUSE <package>
Geçersiz kılmayı kaldırmak için:
adb shell am compat disable OVERRIDE_CAMERA_COMPAT_ENABLE_REFRESH_VIA_PAUSE <package>
Not: Komutlar, geçersiz kılmayı yalnızca geçici olarak uygular veya kaldırır.
OVERRIDE_CAMERA_LANDSCAPE_TO_PORTRAIT
Dikey kamera yönü, cihazın doğal yönüyle eşleşmediğinde kamera çıkışının ters yönde kırpılmasını zorlar. Birçok uygulama bu durumu ele almaz ve aksi takdirde gerilmiş resimler gösterir.
Uygulamalar, geçersiz kılma ile aynı sonucu nasıl elde edebilir?
PROPERTY_COMPAT_OVERRIDE_LANDSCAPE_TO_PORTRAIT
özellik işaretini true
olarak ayarlayın.
Uygulamaları optimize etme
OVERRIDE_CAMERA_COMPAT_DISABLE_FORCE_ROTATION sayfasına bakın.
Geçersiz kılmayı devre dışı bırakma veya bu özellikten çıkma
PROPERTY_COMPAT_OVERRIDE_LANDSCAPE_TO_PORTRAIT
özellik işaretini false
olarak ayarlayın.
Geçersiz kılmayı ayarlamak için mülk işaretleri
<property android:name="android.camera.PROPERTY_COMPAT_OVERRIDE_LANDSCAPE_TO_PORTRAIT"
android:value="true|false"/>
Geçersiz kılmayı test etmek için adb komutları
İç ön kamera kırpma işlemini uygulayan geçersiz kılmayı uygulamak için:
adb shell am compat enable OVERRIDE_CAMERA_LANDSCAPE_TO_PORTRAIT <package>
Geçersiz kılmayı kaldırmak için (bu işlem, iç ön kamera kırpma işlemini kaldırır):
adb shell am compat disable OVERRIDE_CAMERA_LANDSCAPE_TO_PORTRAIT <package>
Not: Komutlar, geçersiz kılmayı yalnızca geçici olarak uygular veya kaldırır.
OVERRIDE_DISABLE_MEDIA_PROJECTION_SINGLE_APP_OPTION
Uygulamaların, uygulama ekran paylaşımını devre dışı bırakmasını engeller (bkz. Medya yansıtma). Uygulamalar, tam ekran yakalamayı zorlamak ve tam ekran ile yakalanan ancak uygulama ekranı paylaşımı ile yakalanmayan bildirimlerin içeriklerini ve pencere modundan bağımsız olarak tüm uygulamaları ifşa ederek kullanıcı gizliliğini tehlikeye atmak için createConfigForDefaultDisplay()
API'yi kötüye kullandığında uygulanır.
Uygulamalar, geçersiz kılma ile aynı sonucu nasıl elde edebilir?
Kullanıcıların pencere modundan bağımsız olarak tam ekranı mı yoksa tek bir uygulama penceresini mi paylaşacaklarına karar vermelerini sağlayan varsayılan medya yansıtma davranışına (Android 14'te, API düzeyi 34'te createScreenCaptureIntent()
ile uygulanır) izin verin. Veya createConfigForUserChoice()
çağrısından döndürülen MediaProjectionConfig
bağımsız değişkeniyle createScreenCaptureIntent(MediaProjectionConfig)
'ı çağırın.
Uygulamaları optimize etme
Kullanıcıların, medya yansıtma sırasında cihaz ekranının tamamını mı yoksa bir uygulama penceresini mi paylaşacağını seçmesine izin verin. Bu, Android 14'ten itibaren varsayılan davranıştır.
Çoklu pencere modunu desteklemek için uygulamanızı yeniden boyutlandırılabilir hale getirin (resizeableActivity="true"
).
Geçersiz kılmayı devre dışı bırakma veya bu özellikten çıkma
Kullanıcı gizliliğinin önemi nedeniyle uygulamanız bu geçersiz kılmayı devre dışı bırakamaz veya bu geçersiz kılmanın kapsamı dışında kalmayı seçemez.
Geçersiz kılmayı ayarlamak için mülk işaretleri
Yok.
Geçersiz kılmayı test etmek için adb komutları
Uygulamanın kısmi ekran paylaşımını devre dışı bırakma özelliğini iptal eden (yani kısmi ekran paylaşımını etkinleştiren) geçersiz kılma işlemini uygulamak için:
adb shell am compat enable OVERRIDE_DISABLE_MEDIA_PROJECTION_SINGLE_APP_OPTION <package>
Uygulamanın kısmi ekran paylaşımını devre dışı bırakmasına izin veren geçersiz kılmayı kaldırmak için:
adb shell am compat disable OVERRIDE_DISABLE_MEDIA_PROJECTION_SINGLE_APP_OPTION <package>
Not: Komutlar, geçersiz kılmayı yalnızca geçici olarak uygular veya kaldırır.
OVERRIDE_ENABLE_COMPAT_FAKE_FOCUS
Bölünmüş ekran modunda odaklanılmamış uygulamalar için sahte odak göndermeyi etkinleştirir. Bazı oyun motorları, uygulamanın içeriğini çizmeden önce odaklanmayı bekler. Bu nedenle, sahte odaklanma, uygulamaların devam ettirildiklerinde henüz odaklanmamışken karartılmış kalmasını önler.
Uygulamalar, geçersiz kılma ile aynı sonucu nasıl elde edebilir?
Mülk işaretini
PROPERTY_COMPAT_ENABLE_FAKE_FOCUS
olarak
true
ayarlayın.
Uygulamaları optimize etme
Uygulamanız birden fazla yönü ve yapılandırma değişikliğini iyi bir şekilde işliyorsa bu sorunu önleyebilirsiniz. Büyük ekran uygulama kalitesi yönergelerini uygulayarak uygulamanızı büyük ekranlara hazır hale getirin.
Unity oyun motorunu kullanıyorsanız 2019.4.40 veya sonraki bir sürüme yükseltin ve oyununuzu yeniden dışa aktarın. Android Player ayarlarında Yeniden Boyutlandırılabilir Pencere seçeneğini işaretli tutun.
Geçersiz kılmayı devre dışı bırakma veya bu özellikten çıkma
Mülk işaretini
PROPERTY_COMPAT_ENABLE_FAKE_FOCUS
olarak
false
ayarlayın.
Geçersiz kılmayı ayarlamak için mülk işaretleri
<property android:name="android.window.PROPERTY_COMPAT_ENABLE_FAKE_FOCUS"
android:value="true|false"/>
Geçersiz kılmayı test etmek için adb komutları
Geçersiz kılmayı uygulamak için:
adb shell am compat enable OVERRIDE_ENABLE_COMPAT_FAKE_FOCUS <package>
Geçersiz kılmayı kaldırmak için:
adb shell am compat disable OVERRIDE_ENABLE_COMPAT_FAKE_FOCUS <package>
Not: Komutlar, geçersiz kılmayı yalnızca geçici olarak uygular veya kaldırır.
OVERRIDE_EXCLUDE_CAPTION_INSETS_FROM_APP_BOUNDS
Geçersiz kılma etkinleştirildiğinde, etkinliğe altyazı çubuğu ekleriyle birlikte yapılandırma uygulanır. Normalde, başlık çubuğu iç kısımları yapılandırmadan ayrılır.
Uygulamalar, geçersiz kılma ile aynı sonucu nasıl elde edebilir?
Uçtan uca ekranı etkinleştirin veya uygulamanın hedef SDK'sını API düzeyi 35 ya da sonraki bir sürüme güncelleyin. Aşağıdaki bilgilere bakın:
- Oluşturma: Pencere iç kenarları hakkında
- Görüntülemeler: Görüntülemelerde içeriği uçtan uca görüntüleme
- Yapılandırma: Davranış değişiklikleri: Android 15 veya sonraki sürümleri hedefleyen uygulamalar
Uygulamaları optimize etme
Uygulamanızda uçtan uca ekran özelliği etkinse veya API düzeyi 35 ya da sonraki sürümler hedefleniyorsa bu sorunu önleyebilirsiniz.
Geçersiz kılmayı devre dışı bırakma veya bu özellikten çıkma
Uçtan uca ekranı etkinleştirin veya API düzeyi 35 ya da sonraki sürümleri hedefleyin.
Geçersiz kılmayı ayarlamak için mülk işaretleri
Yok.
Geçersiz kılmayı test etmek için adb komutları
Geçersiz kılmayı uygulamak için:
adb shell am compat enable OVERRIDE_EXCLUDE_CAPTION_INSETS_FROM_APP_BOUNDS <package>
Geçersiz kılmayı kaldırmak için:
adb shell am compat disable OVERRIDE_EXCLUDE_CAPTION_INSETS_FROM_APP_BOUNDS <package>
Not: Komutlar, geçersiz kılmayı yalnızca geçici olarak uygular veya kaldırır.
Ek kaynaklar
- Büyük ekran uygulama kalitesi yönergeleri
- Temel uygulama kalitesi yönergeleri
-
Sanal cihaz sahibi, sanal cihazı yöneten güvenilir veya ayrıcalıklı bir uygulamadır. Sanal cihaz sahipleri, uygulamaları oluşturmak için sanal cihazlar oluşturur ve ardından uygulamaları kişisel bilgisayarlar, sanal gerçeklik cihazları veya araba bilgi-eğlence sistemleri gibi uzak cihazlara yansıtır. Sanal cihaz sahibi, telefon gibi yerel bir cihazdadır. ↩