Önceki sürümlerde olduğu gibi Android 16'da da uygulamanızı etkileyebilecek davranış değişiklikleri yer alır. 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 enforced edge-to-edge for apps targeting Android 15 (API
level 35), but your app could opt-out by setting
R.attr#windowOptOutEdgeToEdgeEnforcement
to true
. For apps
targeting Android 16 (API level 36),
R.attr#windowOptOutEdgeToEdgeEnforcement
is deprecated and disabled, and your
app can't opt-out of going edge-to-edge.
- If your app targets Android 16 (API level 36) and is running on an
Android 15 device,
R.attr#windowOptOutEdgeToEdgeEnforcement
continues to work. - If your app targets Android 16 (API level 36) and is running on an
Android 16 device,
R.attr#windowOptOutEdgeToEdgeEnforcement
is disabled.
For testing in Android 16 Beta 3, ensure your app supports edge-to-edge and
remove any use of R.attr#windowOptOutEdgeToEdgeEnforcement
so that your app
also supports edge-to-edge on an Android 15 device. To support edge-to-edge,
see the Compose and Views guidance.
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 cihazlarda ç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ı
Apps targeting Android 15 (API level 35) have the
elegantTextHeight
TextView
attribute set to true
by
default, replacing the compact font with one that is much more readable. You
could override this by setting the elegantTextHeight
attribute to false
.
Android 16 deprecates the
elegantTextHeight
attribute,
and the attribute will be ignored once your app targets Android 16. The "UI
fonts" controlled by these APIs are being discontinued, so you should adapt any
layouts to ensure consistent and future proof text rendering in Arabic, Lao,
Myanmar, Tamil, Gujarati, Kannada, Malayalam, Odia, Telugu or Thai.

elegantTextHeight
behavior for apps targeting Android
14 (API level 34) and lower, or for apps targeting Android 15 (API level 35)
that overrode the default by setting the elegantTextHeight
attribute to false
.
elegantTextHeight
behavior for apps targeting Android
16, or for apps targeting Android 15 (API level 35) that didn't override the
default by setting the elegantTextHeight
attribute to
false
.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
Prior to targeting Android 16, when scheduleAtFixedRate
missed a task execution due to being outside a valid
process lifecycle, all missed executions immediately
execute when the app returns to a valid lifecycle.
When targeting Android 16, at most one missed execution of
scheduleAtFixedRate
is immediately executed when the app
returns to a valid lifecycle. This behavior change is expected to improve app
performance. Test this behavior in your app to check if your app is impacted.
You can also test by using the app compatibility framework
and enabling the STPE_SKIP_MULTIPLE_MISSED_PERIODIC_TASKS
compat flag.
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
Android uygulamaları artık çeşitli cihazlarda (telefonlar, tabletler, katlanabilir cihazlar, masaüstü bilgisayarlar, arabalar ve TV'ler gibi) ve büyük ekranlarda pencere modlarında (bölünmüş ekran ve masaüstü pencere modu gibi) çalıştığından, geliştiriciler cihaz yöneliminden bağımsız olarak her ekran ve pencere boyutuna uyum sağlayan Android uygulamaları oluşturmalıdır. Yön kısıtlaması ve yeniden boyutlandırılabilirlik gibi paradigmalar, günümüzün çok cihazlı dünyasında çok kısıtlayıcı.
Yön, yeniden boyutlandırılabilirlik ve en boy oranı kısıtlamalarını yok sayma
Android 16 (API düzeyi 36) hedefleyen uygulamalar için Android 16, sistemin yön, yeniden boyutlandırma ve en boy oranı kısıtlamalarını yönetme şekliyle ilgili değişiklikler içerir. En küçük genişliği >= 600 dp olan ekranlarda kısıtlamalar artık geçerli değildir. Ayrıca, uygulamalar en boy oranına veya kullanıcının tercih ettiği yönde bakılmaksızın ekran penceresinin tamamını doldurur ve dikey kenarlık kullanılmaz.
Bu değişiklik, yeni bir standart platform davranışı sunar. Android, uygulamaların çeşitli yönlere, ekran boyutlarına ve en boy oranlarına uyum sağlaması beklenen bir modele doğru ilerliyor. Sabit yön veya sınırlı yeniden boyutlandırma gibi kısıtlamalar, uygulamanın uyarlanabilirliğini engeller. Bu nedenle, mümkün olan en iyi kullanıcı deneyimini sunmak için uygulamanızı uyarlanabilir hale getirmenizi öneririz.
Uygulama uyumluluk çerçevesini kullanarak ve UNIVERSAL_RESIZABLE_BY_DEFAULT
uyumluluk işaretini etkinleştirerek de bu davranışı test edebilirsiniz.
Sık karşılaşılan zarar veren değişiklikler
Yön, yeniden boyutlandırma ve en boy oranı kısıtlamalarını yoksaymak, uygulamanızın bazı cihazlardaki kullanıcı arayüzünü (özellikle de dikey yönde kilitli küçük düzenler için tasarlanmış öğeleri) etkileyebilir. Örneğin, gerilmiş düzenler, ekran dışı animasyonlar ve bileşenler gibi sorunlarla karşılaşabilirsiniz. En boy oranı veya yönle ilgili varsayımların hepsi uygulamanızda görsel sorunlara neden olabilir. Bu sorunların nasıl önleneceği ve uygulamanızın uyarlanabilir davranışının nasıl iyileştirileceği hakkında daha fazla bilgi edinin.
Cihaz rotasyonuna izin vermek, daha fazla etkinliğin yeniden oluşturulmasına neden olur. Bu da, düzgün şekilde korunmazsa kullanıcı durumunun kaybedilmesine yol açabilir. Kullanıcı arayüzü durumlarını kaydetme başlıklı makalede, kullanıcı arayüzü durumunu nasıl doğru şekilde kaydedeceğinizi öğrenin.
Uygulama ayrıntıları
Aşağıdaki manifest özellikleri ve çalışma zamanı API'leri, tam ekran ve çok pencereli modlarda büyük ekranlı cihazlarda yoksayılır:
screenOrientation
resizableActivity
minAspectRatio
maxAspectRatio
setRequestedOrientation()
getRequestedOrientation()
screenOrientation
, setRequestedOrientation()
ve getRequestedOrientation()
için aşağıdaki değerler yoksayılır:
portrait
reversePortrait
sensorPortrait
userPortrait
landscape
reverseLandscape
sensorLandscape
userLandscape
Görüntü yeniden boyutlandırılabilirliği açısından android:resizeableActivity="false"
,
android:minAspectRatio
ve android:maxAspectRatio
'nin hiçbir etkisi yoktur.
Android 16'yı (API düzeyi 36) hedefleyen uygulamalarda, uygulama yönü, yeniden boyutlandırılabilirlik ve en boy oranı kısıtlamaları büyük ekranlarda varsayılan olarak yoksayılır. Ancak tam olarak hazır olmayan her uygulama, bu özelliği devre dışı bırakarak bu davranışı geçici olarak geçersiz kılabilir (bu da uygulamanın uyumluluk moduna yerleştirildiği önceki davranışa neden olur).
İstisnalar
Android 16 yön, yeniden boyutlandırma ve en boy oranı kısıtlamaları aşağıdaki durumlarda geçerli değildir:
- Oyunlar (
android:appCategory
işaretine göre) - Kullanıcıların, cihazın en boy oranı ayarlarında uygulamanın varsayılan davranışını açıkça etkinleştirmesi
sw600dp
'ten küçük ekranlar
Özelliği geçici olarak devre dışı bırakma
Belirli bir etkinliği kapsam dışında bırakmak için PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY
manifest mülkünü tanımlayın:
<activity ...>
<property android:name="android.window.PROPERTY_COMPAT_ALLOW_RESTRICTED_RESIZABILITY" android:value="true" />
...
</activity>
Uygulamanızın çok fazla bölümü Android 16 için hazır değilse aynı özelliği uygulama düzeyinde uygulayarak özelliği tamamen devre dışı bırakabilirsiniz:
<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ında daha ayrıntılı izinler kullanır. Android 16'dan itibaren, daha önce BODY_SENSORS
veya BODY_SENSORS_BACKGROUND
iznini gerektiren tüm API'ler bunun yerine ilgili android.permissions.health
iznini gerektiriyor. Bu durum aşağıdaki veri türlerini, API'leri ve ön plan hizmeti türlerini etkiler:
- Wear OS'teki Sağlık Hizmetleri'nden
HEART_RATE_BPM
- Android Sensör Yöneticisi'nden
Sensor.TYPE_HEART_RATE
- Wear OS'te
ProtoLayout
tarihinden itibarenheartRateAccuracy
veheartRateBpm
BODY_SENSORS
yerine ilgiliandroid.permission.health
izninin gerekli olduğuFOREGROUND_SERVICE_TYPE_HEALTH
Uygulamanız bu API'leri kullanıyorsa ilgili ayrıntılı izinleri istemelidir:
- Nabız, SpO2 veya Deri 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
As part of the Improved bond loss handling, Android 16 also introduces 2 new intents to provide apps with greater awareness of bond loss and encryption changes.
Apps targeting Android 16 can now:
- Receive an
ACTION_KEY_MISSING
intent when remote bond loss is detected, allowing them to provide more informative user feedback and take appropriate actions. - Receive an
ACTION_ENCRYPTION_CHANGE
intent whenever encryption status of the link changes. This includes encryption status change, encryption algorithm change, and encryption key size change. Apps must consider the bond restored if the link is successfully encrypted upon receivingACTION_ENCRYPTION_CHANGE
intent later.
If your app currently uses custom mechanisms for bond loss handling, migrate to
the new intent ACTION_KEY_MISSING
to detect and manage bond loss
events. We recommend your app guide the user to confirm the remote device is in
range before initiating device forgetting and re-pairing.
Moreover, if a device disconnects after ACTION_KEY_MISSING
intent
is received, your app should be mindful about reconnecting to the device as that
device may no longer be bonded with the system.
Bluetooth bağlantısını kaldırmanın yeni yolu
Android 16'yı hedefleyen tüm uygulamalar artık CompanionDeviceManager
'teki herkese açık bir API'yi kullanarak Bluetooth cihazlarının eşlemesini kaldırabilir. Bir tamamlayıcı cihaz CDM ilişkisi olarak yönetiliyorsa uygulama, ilişkili cihazdaki yeni removeBond(int)
API'yi kullanarak Bluetooth bağını kaldırmayı tetikleyebilir. Uygulama, Bluetooth cihaz yayın etkinliğini dinleyerek ACTION_BOND_STATE_CHANGED
bağ durumu değişikliklerini izleyebilir.
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 Intent'ler ö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 artık 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 manifest dosyalarında 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 bir ş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 yerel ağ erişimine bağlı olan senaryolar güncellenmelidir. Ayrıca, kullanıcının yeni izni reddetmesine ve iptal etmesine hazırlanılmalıdır.
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 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 Gerekli |
---|---|
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 etkilenmez.
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 devre dışı bırakmak 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 projedeki 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
Android 16 veya sonraki sürümleri çalıştıran cihazlarda SDK 36 veya sonraki sürümleri hedefleyen bir uygulama tarafından fotoğraf ve video izinleri istendiğinde, seçili medyaya erişimi sınırlamayı seçen kullanıcılar, uygulamaya ait tüm fotoğrafları fotoğraf seçicide önceden seçili olarak görür. Kullanıcılar önceden seçilmiş öğelerden herhangi birinin seçimini kaldırabilir. Bu durumda uygulamanın söz konusu fotoğraf ve videolara erişimi iptal edilir.