Önceki sürümlerde olduğu gibi Android 16'da da uygulamanızı etkileyebilecek davranış değişiklikleri yer alıyor. Aşağıdaki davranış değişiklikleri yalnızca Android 16 veya sonraki sürümleri hedefleyen uygulamalar için geçerlidir. Uygulamanız Android 16 veya sonraki sürümleri hedefliyorsa geçerli olduğu durumlarda uygulamanızı bu davranışları destekleyecek şekilde değiştirmeniz gerekir.
Uygulamanızın targetSdkVersion
sürümünden bağımsız olarak Android 16'da çalışan tüm uygulamaları etkileyen davranış değişiklikleri listesini de incelemeyi unutmayın.
Kullanıcı deneyimi ve sistem kullanıcı arayüzü
Android 16 (API düzeyi 36), daha tutarlı ve sezgisel bir kullanıcı deneyimi sunmak için tasarlanmış aşağıdaki değişiklikleri içerir.
Uçtan uca ekran kapsamı dışında kalma özelliği kullanımdan kaldırılıyor
Android 15 (API düzeyi 35) hedefleyen uygulamalar için Android 15'te tam ekran zorunlu kılındı ancak uygulamanız R.attr#windowOptOutEdgeToEdgeEnforcement
değerini true
olarak ayarlayarak bu özelliği devre dışı bırakabilir. Android 16'yı (API düzeyi 36) hedefleyen uygulamalarda R.attr#windowOptOutEdgeToEdgeEnforcement
desteği sonlandırıldı ve devre dışı bırakıldı. Bu nedenle, uygulamanız uçtan uca ekran özelliğini devre dışı bırakamaz.
- Uygulamanız Android 16'yı (API düzeyi 36) hedefliyorsa ve Android 15 çalıştıran bir cihazda çalışıyorsa
R.attr#windowOptOutEdgeToEdgeEnforcement
çalışmaya devam eder. - Uygulamanız Android 16'yı (API düzeyi 36) hedefliyorsa ve Android 16 çalıştıran bir cihazda çalışıyorsa
R.attr#windowOptOutEdgeToEdgeEnforcement
devre dışıdır.
Android 16 Beta 3'te test yapmak için uygulamanızın kenardan kenara ekranı desteklediğinden emin olun ve R.attr#windowOptOutEdgeToEdgeEnforcement
kullanımını kaldırarak uygulamanızın Android 15 cihazlarda da kenardan kenara ekranı desteklemesini sağlayın. Kenardan kenara desteği sunmak için Oluşturma ve Görünümler ile ilgili yönergeleri inceleyin.
Tahmini geri arama için taşıma veya devre dışı bırakma işlemi gereklidir
Android 16 (API düzeyi 36) veya sonraki sürümleri hedefleyen ve Android 16 veya sonraki sürümlerin yüklü olduğu bir cihazda çalışan uygulamalarda tahmini geri sistem animasyonları (ana sayfaya geri, görevler arası ve etkinlikler arası) varsayılan olarak etkindir.
Ayrıca onBackPressed
çağrılmaz ve KeyEvent.KEYCODE_BACK
artık gönderilmez.
Uygulamanız geri etkinliğini durduruyorsa ve henüz tahmini geri özelliğine geçmediyseniz uygulamanızı, desteklenen geri gezinme API'lerini kullanacak şekilde güncelleyin veya uygulamanızın AndroidManifest.xml
dosyasının <application>
veya <activity>
etiketinde android:enableOnBackInvokedCallback
özelliğini false
olarak ayarlayarak geçici olarak devre dışı bırakın.
Elegant yazı tipi API'leri kullanımdan kaldırıldı ve devre dışı bırakıldı
Android 15'i (API düzeyi 35) hedefleyen uygulamalarda elegantTextHeight
TextView
özelliği varsayılan olarak true
olarak ayarlanır. Bu sayede, kompakt yazı tipi çok daha okunaklı bir yazı tipiyle değiştirilir. elegantTextHeight
özelliğini false
olarak ayarlayarak bu ayarı geçersiz kılabilirsiniz.
Android 16'da elegantTextHeight
özelliğinin desteği sonlandırılmıştır. Uygulamanız Android 16'yı hedeflediğinde bu özellik göz ardı edilir. Bu API'ler tarafından kontrol edilen "kullanıcı arayüzü yazı tipleri" kullanımdan kaldırılıyor. Bu nedenle, Arapça, Lao, Myanmar, Tamil, Guceratça, Kannada, Malayalam, Odia, Telugu veya Tayca dillerinde tutarlı ve geleceğe hazır metin oluşturma sağlamak için tüm düzenleri uyarlamanız gerekir.

elegantTextHeight
özelliğini false
olarak ayarlayarak varsayılan ayarı geçersiz kılan uygulamalar için elegantTextHeight
davranışı.
elegantTextHeight
Android 16'yı hedefleyen uygulamalar veya elegantTextHeight
özelliğini false
olarak ayarlayarak varsayılan değeri geçersiz kılmayan Android 15'i (API düzeyi 35) hedefleyen uygulamalar için davranış.Temel işlevler
Android 16 (API düzeyi 36), Android sisteminin çeşitli temel özelliklerini değiştiren veya genişleten aşağıdaki değişiklikleri içerir.
Sabit ücretli iş planlama optimizasyonu
Android 16'yı hedeflemeden önce, scheduleAtFixedRate
geçerli bir işlem yaşam döngüsü dışında olduğu için bir görev yürütmeyi kaçırdığında, uygulama geçerli bir yaşam döngüsüne döndüğünde tüm kaçırılan yürütmeler hemen yürütülür.
Android 16'yı hedeflerken, uygulama geçerli bir yaşam döngüsüne döndüğünde en fazla bir scheduleAtFixedRate
yürütme işleminin eksikliği hemen yürütülür. Bu davranış değişikliğinin uygulama performansını iyileştirmesi bekleniyor. Uygulamanızın etkilenip etkilenmediğini kontrol etmek için uygulamanızda bu davranışı test edin.
Uygulama uyumluluk çerçevesini kullanarak ve STPE_SKIP_MULTIPLE_MISSED_PERIODIC_TASKS
uyumluluk işaretini etkinleştirerek de test yapabilirsiniz.
Cihaz form faktörleri
Android 16 (API düzeyi 36), büyük ekranlı cihazlarda gösterilen uygulamalar için aşağıdaki değişiklikleri içerir.
Uyarlanabilir düzenler
With Android apps now running on a variety of devices (such as phones, tablets, foldables, desktops, cars, and TVs) and windowing modes on large screens (such as split screen and desktop windowing), developers should build Android apps that adapt to any screen and window size, regardless of device orientation. Paradigms like restricting orientation and resizability are too restrictive in today's multidevice world.
Ignore orientation, resizability, and aspect ratio restrictions
For apps targeting Android 16 (API level 36), Android 16 includes changes to how the system manages orientation, resizability, and aspect ratio restrictions. On displays with smallest width >= 600dp, the restrictions no longer apply. Apps also fill the entire display window, regardless of aspect ratio or a user's preferred orientation, and pillarboxing isn't used.
This change introduces a new standard platform behavior. Android is moving toward a model where apps are expected to adapt to various orientations, display sizes, and aspect ratios. Restrictions like fixed orientation or limited resizability hinder app adaptability, so we recommend making your app adaptive to deliver the best possible user experience.
You can also test this behavior by using the
app compatibility framework and
enabling the UNIVERSAL_RESIZABLE_BY_DEFAULT
compat flag.
Common breaking changes
Ignoring orientation, resizability, and aspect ratio restrictions might impact your app's UI on some devices, especially elements that were designed for small layouts locked in portrait orientation: for example, issues like stretched layouts and off-screen animations and components. Any assumptions about aspect ratio or orientation can cause visual issues with your app. Learn more about how to avoid them and improve your app's adaptive behaviour.
Allowing device rotation results in more activity re-creation, which can result in losing user state if not properly preserved. Learn how to correctly save UI state in Save UI states.
Implementation details
The following manifest attributes and runtime APIs are ignored across large screen devices in full-screen and multi-window modes:
screenOrientation
resizableActivity
minAspectRatio
maxAspectRatio
setRequestedOrientation()
getRequestedOrientation()
The following values for screenOrientation
, setRequestedOrientation()
, and
getRequestedOrientation()
are ignored:
portrait
reversePortrait
sensorPortrait
userPortrait
landscape
reverseLandscape
sensorLandscape
userLandscape
Regarding display resizability, android:resizeableActivity="false"
,
android:minAspectRatio
, and android:maxAspectRatio
have no effect.
For apps targeting Android 16 (API level 36), app orientation, resizability, and aspect ratio constraints are ignored on large screens by default, but every app that isn't fully ready can temporarily override this behavior by opting out (which results in the previous behavior of being placed in compatibility mode).
Exceptions
The Android 16 orientation, resizability, and aspect ratio restrictions don't apply in the following situations:
- Games (based on the
android:appCategory
flag) - Users explicitly opting in to the app's default behavior in aspect ratio settings of the device
- Screens that are smaller than
sw600dp
Opt out temporarily
To opt out a specific activity, declare the
PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY
manifest property:
<activity ...>
<property android:name="android.window.PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY" android:value="true" />
...
</activity>
If too many parts of your app aren't ready for Android 16, you can opt out completely by applying the same property at the application level:
<application ...>
<property android:name="android.window.PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY" android:value="true" />
</application>
Sağlık ve fitness
Android 16 (API düzeyi 36), sağlık ve fitness verileriyle ilgili aşağıdaki değişiklikleri içerir.
Sağlık ve fitness izinleri
Android 16 (API düzeyi 36) veya sonraki sürümleri hedefleyen uygulamalar için BODY_SENSORS
izinleri, Health Connect tarafından da kullanılan android.permissions.health
altındaki ayrıntılı izinlere geçiriliyor. Daha önce BODY_SENSORS
veya BODY_SENSORS_BACKGROUND
iznini gerektiren tüm API'ler artık ilgili android.permissions.health
iznini gerektiriyor. Bu durum aşağıdaki veri türlerini, API'leri ve ön plan hizmeti türlerini etkiler:
- Wear Health Services'den
HEART_RATE_BPM
- Android Sensör Yöneticisi'nden
Sensor.TYPE_HEART_RATE
- Wear
ProtoLayout
'danheartRateAccuracy
veheartRateBpm
BODY_SENSORS
yerine ilgiliandroid.permission.health
izninin gerekli olduğuFOREGROUND_SERVICE_TYPE_HEALTH
Uygulamanız bu API'leri kullanıyorsa artık ilgili ayrıntılı izinleri istemelidir:
- Kalp atış hızı, SpO2 veya cilt sıcaklığının kullanım sırasında izlenmesi için:
android.permissions.health
altında ayrıntılı izin isteyin (ör.BODY_SENSORS
yerineREAD_HEART_RATE
). - Arka planda sensör erişimi için:
BODY_SENSORS_BACKGROUND
yerineREAD_HEALTH_DATA_IN_BACKGROUND
isteğinde bulunun.
Bu izinler, sağlık, fitness ve sağlıklı yaşam verileri için Android veri deposu olan Health Connect'ten veri okuma erişimini koruyan izinlerle aynıdır.
Mobil uygulamalar
READ_HEART_RATE
ve diğer ayrıntılı izinleri kullanmaya geçen mobil uygulamalar, uygulamanın gizlilik politikasını görüntülemek için bir etkinlik de beyan etmelidir. Bu, Health Connect ile aynı koşuldur.
Bağlantı
Android 16 (API düzeyi 36), çevre birimleri ile bağlantıyı iyileştirmek için Bluetooth yığınında aşağıdaki değişiklikleri içerir.
Bağ kaybı ve şifreleme değişikliklerini işlemek için yeni intent'ler
Daha iyi bağ kaybı yönetimi kapsamında Android 16, uygulamalara bağ kaybı ve şifreleme değişiklikleri hakkında daha fazla bilgi sağlamak için 2 yeni intent de sunar.
Android 16'yı hedefleyen uygulamalar artık:
- Uzaktan bağ kaybı algılandığında
ACTION_KEY_MISSING
intent'i alır. Bu sayede daha bilgilendirici kullanıcı geri bildirimleri sağlayabilir ve uygun işlemleri yapabilirler. - Bağlantının şifreleme durumu değiştiğinde bir
ACTION_ENCRYPTION_CHANGE
intent'i alın. Şifreleme durumu değişikliği, şifreleme algoritması değişikliği ve şifreleme anahtarı boyutu değişikliği buna dahildir. Uygulamalar, daha sonraACTION_ENCRYPTION_CHANGE
intent'i aldıktan sonra bağlantı başarıyla şifrelenirse bağın geri yüklendiğini dikkate almalıdır.
Uygulamanız şu anda bağ kaybıyla ilgili işlemler için özel mekanizmalar kullanıyorsa bağ kaybı etkinliklerini algılayıp yönetmek için yeni intent'e ACTION_KEY_MISSING
geçin. Uygulamanızın, cihazı unutma ve yeniden eşleme işlemini başlatmadan önce kullanıcıyı uzak cihazın menzilde olduğunu onaylamaya yönlendirmesini öneririz.
Ayrıca, ACTION_KEY_MISSING
intent'i alındıktan sonra bir cihazın bağlantısı kesilirse uygulamanız, cihaz artık sistemle bağlı olmayabileceğinden cihaza yeniden bağlanırken dikkatli olmalıdır.
Güvenlik
Android 16 (API düzeyi 36), aşağıdaki güvenlik değişikliklerini içerir.
MediaStore sürüm kilidi
For apps targeting Android 16 or higher, MediaStore#getVersion()
will now
be unique to each app. This eliminates identifying properties from the version
string to prevent abuse and usage for fingerprinting techniques. Apps shouldn't
make any assumptions around the format of this version. Apps should already
handle version changes when using this API and in most cases shouldn't need to
change their current behavior, unless the developer has attempted to infer
additional information that is beyond the intended scope of this API.
Daha Güvenli Intent'ler
Daha Güvenli Intentler özelliği, Android'in intent çözümleme mekanizmasının güvenliğini artırmak için tasarlanmış çok aşamalı bir güvenlik girişimidir. Amaç, intent işleme sırasında kontroller ekleyerek ve belirli ölçütleri karşılamayan intent'leri filtreleyerek uygulamaları kötü amaçlı işlemlerden korumaktır.
Android 15'te gönderen uygulamaya odaklanan özellik, Android 16'da kontrolü alıcı uygulamaya aktararak geliştiricilerin uygulama manifestlerini kullanarak katı intent çözümünü etkinleştirmelerine olanak tanır.
İki önemli değişiklik uygulanıyor:
Belirli Intent'ler, Hedef Bileşenin Intent Filtresiyle Eşleşmelidir: Bir intent bir bileşeni açıkça hedefliyorsa bu bileşenin intent filtresiyle eşleşmelidir.
İşlemi Olmayan Intent'ler Hiçbir Intent Filtresiyle Eşleşemez: Belirtilen bir işlemi olmayan intent'ler herhangi bir intent filtresiyle çözülmemelidir.
Bu değişiklikler yalnızca birden fazla uygulama söz konusu olduğunda geçerlidir ve tek bir uygulamadaki intent işlemeyi etkilemez.
Etki
Etkinleştirme özelliği, geliştiricilerin bu özelliğin geçerli olması için uygulama manifestlerinde açıkça etkinleştirmesi gerektiği anlamına gelir. Bu nedenle, özelliğin etkisi geliştiricileri aşağıdaki şartları karşılayan uygulamalarla sınırlı olacaktır:
- Daha Güvenli Intents özelliğinin ve avantajlarının farkında olmalıdır.
- Uygulamalarına daha katı intent işleme uygulamaları eklemeyi etkin bir şekilde seçmelidir.
Bu etkinleştirme yaklaşımı, mevcut daha az güvenli intent çözümleme davranışına dayalı olabilecek mevcut uygulamaların çalışmama riskini en aza indirir.
Android 16'da ilk etki sınırlı olsa da Güvenli Intents girişimi, gelecekteki Android sürümlerinde daha geniş bir etki için bir yol haritasına sahiptir. Amacımız, nihayetinde katı intent çözümünü varsayılan davranış haline getirmektir.
Daha güvenli intentler özelliği, kötü amaçlı uygulamaların intent çözümleme mekanizmasındaki güvenlik açıklarından yararlanmasını zorlaştırarak Android ekosisteminin güvenliğini önemli ölçüde artırabilir.
Ancak mevcut uygulamalarla ilgili olası uyumluluk sorunlarını gidermek için kapsam dışında kalmayı ve zorunlu yaptırımı etkinleştirmeye geçiş dikkatli bir şekilde yönetilmelidir.
Uygulama
Geliştiricilerin, uygulama manifestlerinde intentMatchingFlags
özelliğini kullanarak daha katı intent eşleştirmeyi açıkça etkinleştirmeleri gerekir.
Özelliğin uygulamanın tamamı için etkinleştirildiği ancak alıcıda devre dışı bırakıldığı/devre dışı bırakıldığı bir örneği aşağıda bulabilirsiniz:
<application android:intentMatchingFlags="enforceIntentFilter">
<receiver android:name=".MyBroadcastReceiver" android:exported="true" android:intentMatchingFlags="none">
<intent-filter>
<action android:name="com.example.MY_CUSTOM_ACTION" />
</intent-filter>
<intent-filter>
<action android:name="com.example.MY_ANOTHER_CUSTOM_ACTION" />
</intent-filter>
</receiver>
</application>
Desteklenen işaretler hakkında daha fazla bilgi:
İşaret adı | Açıklama |
---|---|
enforceIntentFilter | Gelen intent'ler için daha katı eşleşmeyi zorunlu kılar |
yok | Gelen intent'ler için tüm özel eşleme kurallarını devre dışı bırakır. Birden fazla işaret belirtilirken "yok" işaretine öncelik verilerek çakışan değerler çözülür. |
allowNullAction | Eşleşme kurallarının esnekleştirilmesi, eşleşmesi gereken bir işlem içermeyen intent'lere izin verir. Belirli bir davranışı elde etmek için "enforceIntentFilter" ile birlikte kullanılacak işaret |
Test ve Hata Ayıklama
Zorunluluk etkinken, intent arayan niyeti düzgün şekilde doldurduysa uygulamalar düzgün şekilde çalışmalıdır.
Ancak engellenen intent'ler, "PackageManager."
etiketiyle "Intent does not match component's intent filter:"
ve "Access blocked:"
gibi uyarı günlük mesajlarını tetikler. Bu, uygulamayı etkileyebilecek ve dikkat gerektiren olası bir sorunu gösterir.
Logcat filtresi:
tag=:PackageManager & (message:"Intent does not match component's intent filter:" | message: "Access blocked:")
Gizlilik
Android 16 (API düzeyi 36), aşağıdaki gizlilik değişikliklerini içerir.
Yerel Ağ İzni
LAN'daki cihazlara INTERNET
iznine sahip tüm uygulamalar erişebilir.
Bu, uygulamaların yerel cihazlara bağlanmasını kolaylaştırır ancak kullanıcının parmak izini oluşturma ve konum için proxy olma gibi gizlilik etkileri de vardır.
Yerel Ağ Korumaları projesi, yerel ağa erişimi yeni bir çalışma zamanında izinle sınırlayarak kullanıcının gizliliğini korumayı amaçlar.
Yayın planı
Bu değişiklik, sırasıyla 25. yılın 2. çeyreği ve TBD olmak üzere iki sürüm arasında dağıtılacaktır. Bu korumalar daha sonraki bir Android sürümünde zorunlu kılınacağından geliştiricilerin 2025'in 2. çeyreğinde bu yönergelere uyması ve geri bildirim paylaşması zorunludur. Ayrıca, aşağıdaki kılavuzu kullanarak, kullanıcının yeni izni reddetmesine ve iptal etmesine hazırlanmak için, yerel ağ erişimine bağlı olan senaryolar güncellenmelidir.
Etki
LNP şu aşamada etkinleştirme gerektiren bir özelliktir. Bu nedenle, yalnızca etkinleştirilen uygulamalar etkilenecektir. Etkinleştirme aşamasının amacı, uygulama geliştiricilerin uygulamalarının hangi bölümlerinin dolaylı yerel ağ erişimine bağlı olduğunu anlayarak bir sonraki sürümde bu bölümleri izin korumasına hazırlamalarını sağlamaktır.
Aşağıdakileri kullanarak kullanıcının yerel ağına erişen uygulamalar etkilenecektir:
- Yerel ağ adreslerinde ham soketlerin doğrudan veya kitaplık kullanımı (ör. mDNS veya SSDP hizmet keşfi protokolü)
- Yerel ağa erişen çerçeve düzeyinde sınıfların kullanılması (ör. NsdManager)
Yerel ağ adresine gelen ve giden trafik için yerel ağ erişimi izni gerekir. Aşağıdaki tabloda sık karşılaşılan bazı durumlar listelenmiştir:
Uygulama Düşük Seviye Ağ İşlemi | Yerel Ağ İzni Gerekiyor |
---|---|
Giden TCP bağlantısı oluşturma | evet |
Gelen TCP bağlantılarını kabul etme | evet |
UDP tekil yayın, çoklu yayın, yayın gönderme | evet |
Gelen UDP tekil yayın, çoklu yayın, anons alma | evet |
Bu kısıtlamalar ağ yığınının derinliklerine uygulandığından tüm ağ API'leri için geçerlidir. Yerel veya yönetilen kodda oluşturulan soketler, Cronet ve OkHttp gibi ağ kitaplıkları ve bunların üzerine uygulanan tüm API'ler buna dahildir. Yerel ağdaki hizmetleri (ör. .local son eki olan hizmetler) çözmeye çalışmak için yerel ağ izni gerekir.
Yukarıdaki kurallara istisnalar:
- Bir cihazın DNS sunucusu yerel ağdaysa bu sunucuya gelen veya sunucudan giden trafik (53 numaralı bağlantı noktasında) için yerel ağ erişim izni gerekmez.
- Uygulama içi seçici olarak Çıkış Değiştirici'yi kullanan uygulamaların yerel ağ izinlerine ihtiyacı yoktur (2025'in 4. çeyreğinde daha fazla bilgi sağlanacaktır).
Geliştirici Rehberi (Etkinleştirme)
Yerel ağ kısıtlamalarını etkinleştirmek için aşağıdakileri yapın:
- Cihazı 25Q2 Beta 3 veya sonraki bir sürüme flaşlayın.
- Test edilecek uygulamayı yükleyin.
adb'de Appcompat işaretini etkinleştirin veya devre dışı bırakın:
adb shell am compat enable RESTRICT_LOCAL_NETWORK <package_name>
Cihazı yeniden başlatın
Artık uygulamanızın yerel ağa erişimi kısıtlanmış durumdadır ve yerel ağa erişme girişimleri soket hatalarına neden olur. Uygulama sürecinizin dışında yerel ağ işlemleri gerçekleştiren API'ler (ör. NsdManager) kullanıyorsanız bu API'ler etkinleştirme aşamasında etkilenmeyecektir.
Erişimi geri yüklemek için uygulamanıza NEARBY_WIFI_DEVICES
izni vermeniz gerekir.
- Uygulamanın manifest dosyasında
NEARBY_WIFI_DEVICES
iznini beyan ettiğinden emin olun. - Ayarlar > Uygulamalar > [Uygulama Adı] > İzinler > Yakındaki cihazlar > İzin ver'e gidin.
Artık uygulamanızın yerel ağa erişimi geri yüklenecektir ve tüm senaryolarınız, uygulamayı etkinleştirmeden önceki gibi çalışacaktır.
Yerel ağ koruması yaptırımı başladıktan sonra uygulamanın ağ trafiği aşağıdaki şekilde etkilenir.
İzin | Giden LAN İsteği | Giden/Gelen İnternet İsteği | Gelen LAN İsteği |
---|---|---|---|
Verildi | Works | Works | Works |
İzin Verilmedi | Başarısızlar | Works | Başarısızlar |
Uygulama uyumluluğu işaretini kapatmak için aşağıdaki komutu kullanın
adb shell am compat disable RESTRICT_LOCAL_NETWORK <package_name>
Hatalar
Bu kısıtlamalardan kaynaklanan hatalar, yerel bir ağ adresine gönderme veya gönderme varyantı çağrısında bulunduğunda çağıran sokete döndürülür.
Örnek hatalar:
sendto failed: EPERM (Operation not permitted)
sendto failed: ECONNABORTED (Operation not permitted)
Yerel Ağ Tanımı
Bu projede yerel ağ, kablosuz veya Ethernet gibi yayın yapmaya uygun bir ağ arayüzü kullanan ancak hücresel (WWAN) veya VPN bağlantılarını hariç tutan bir IP ağını ifade eder.
Aşağıdakiler yerel ağ olarak kabul edilir:
IPv4:
- 169.254.0.0/16 // Bağlantı Yerel
- 100.64.0.0/10 // CGNAT
- 10.0.0.0/8 // RFC1918
- 172.16.0.0/12 // RFC1918
- 192.168.0.0/16 // RFC1918
IPv6:
- Bağlantı yerel
- Doğrudan bağlı rotalar
- Thread gibi stub ağları
- Birden fazla alt ağ (TBD)
Ayrıca hem çoklu yayın adresleri (224.0.0.0/4, ff00::/8) hem de IPv4 yayın adresi (255.255.255.255) yerel ağ adresleri olarak sınıflandırılır.
Uygulamaya ait fotoğraflar
When prompted for photo and video permissions by an app targeting SDK 36 or higher on devices running Android 16 or higher, users who choose to limit access to selected media will see any photos owned by the app pre-selected in the photo picker. Users can deselect any of these pre-selected items, which will revoke the app's access to those photos and videos.