Android'de izin güncellemeleri: 11

Android 11, kullanıcılara daha ayrıntılı bilgiler sunma olanağı tanır. konum, mikrofon ve kamera izinlerini verebilirsiniz. Ayrıca, sistem Android 11 veya sonraki bir sürümü hedefleyen kullanılmayan uygulamaların izinlerini sıfırlar daha yüksek olabilir ve uygulamaların sistem uyarı penceresini kullanma veya telefon numaralarıyla ilgili bilgileri okuma.

Tek seferlik izinler

Android 11'den itibaren uygulamanız her izin istediğinde kullanıcı izinleri iletişim kutusu, konum, mikrofon veya kamera ile ilgili Yalnızca bu sefer adlı bir seçenek içerir. Kullanıcı bu seçeneği İletişim kutusunda, uygulamanıza tek seferlik geçici bir izin verilir.

Sistemin tek seferlik işlemleri nasıl yaptığı hakkında daha fazla bilgi edinin. izinleriyle ilgili daha fazla bilgi edinin.

Kullanılmayan uygulamaların izinlerini otomatik olarak sıfırla

Uygulamanız Android 11 veya sonraki bir sürümü hedefliyorsa ve birkaç süre kullanılmıyorsa aylar sonra, sistem, verileri otomatik olarak sıfırlayarak kullanıcı verilerini korur. Kullanıcının uygulamanıza verdiği çalışma zamanında istenen izinleri içerir. Bu işlem, bu kullanıcı sistem ayarlarında bir izni görüntülemiş ve uygulamanın Reddet erişim düzeyini seçin. Uygulamanız çalışma zamanında izin istediğinde, uygulamanızda değişiklik yapmanız gerekmez. Çünkü kullanıcı olarak etkileşimde bulunduğunda, bu özelliklerin gerekli izinleri verebilirsiniz.

Sistemin, kullanılmayan izinleri otomatik olarak nasıl sıfırladığı hakkında daha fazla bilgi uygulamalar.

İzin iletişim kutusu görünürlüğü

Android 11'den itibaren, kullanıcı belirli bir süre için Reddet'e dokunursa belirli bir izni birden fazla kez kullandığınız, uygulamanız artık daha güvenli değilse kullanıcı, bu izni tekrar istiyor. Kullanıcının yaptığı işlem "bir daha sorma" anlamına gelir. Şu tarihte: kullanıyorsanız, kullanıcılar şunu her yaptığında sistem izinleri iletişim kutusunu kullanıcı daha önce "sorma" seçeneğini belirlemediyse uygulama izin istedi tekrar" onay kutusunu veya seçeneği işaretleyin. Android 11'deki bu davranış değişikliği, kullanıcıları kullanıcıların reddetmeyi seçtiği izinler için tekrarlanan istekler.

Bir uygulamaya izinlerin kalıcı olarak reddedilip reddedilmediğini belirlemek (hata ayıklama için hariç) aşağıdaki komutu kullanın:

adb shell dumpsys package PACKAGE_NAME

Burada PACKAGE_NAME, incelenecek paketin adıdır.

Komutun çıkışı aşağıdaki gibi bölümler içerir:

...
runtime permissions:
  android.permission.POST_NOTIFICATIONS: granted=false, flags=[ USER_SENSITIVE_WHEN_GRANTED|USER_SENSITIVE_WHEN_DENIED]
  android.permission.ACCESS_FINE_LOCATION: granted=false, flags=[ USER_SET|USER_FIXED|USER_SENSITIVE_WHEN_GRANTED|USER_SENSITIVE_WHEN_DENIED]
  android.permission.BLUETOOTH_CONNECT: granted=false, flags=[ USER_SENSITIVE_WHEN_GRANTED|USER_SENSITIVE_WHEN_DENIED]
...

Kullanıcı tarafından bir kez reddedilen izinler USER_SET tarafından işaretlenir. İki kez Reddet seçilerek kalıcı olarak reddedilen izinler USER_FIXED tarafından işaretlendi.

Test sırasında, test kullanıcılarının yeniden yüklenmediğinden emin olmak için daha da şaşırtıcı hale gelebilir. Bunun için şu komutu kullanın:

adb shell pm clear-permission-flags PACKAGE_NAME PERMISSION_NAME user-set user-fixed

PERMISSION_NAME, istediğiniz iznin adıdır sıfırlandı. Android uygulama izinlerinin tam listesini görüntülemek için permissions API'yi ziyaret edin. referans sayfasına gidin.

İznin nasıl işleneceği hakkında daha fazla bilgi edinin. inceleyebilirsiniz.

Sistem uyarı penceresi değişiklikleri

Android 11, uygulamaların SYSTEM_ALERT_WINDOW izni gerekir. Değişiklikler, izin alınarak kullanıcıları korumak amacıyla daha bilinçli kararlar vermek sizin görevinizdir.

İstek üzerine belirli uygulamalara otomatik olarak SYSTEM_ALERT_WINDOW izni verilir

Belirli uygulama sınıflarına otomatik olarak SYSTEM_ALERT_WINDOW izni verilir izin:

  • Google’ın ROLE_CALL_SCREENING ve SYSTEM_ALERT_WINDOW isteğine otomatik olarak izin verilir. Eğer Uygulama ROLE_CALL_SCREENING iznini kaybederse izni kaybeder.

  • Ekranı bir MediaProjection ve SYSTEM_ALERT_WINDOW kullanıcısına otomatik olarak izin verilmesini ister Kullanıcı uygulamaya erişim iznini açıkça reddetmediği sürece. Uygulama ekranı yakalamayı durdurursa izni kaybeder. Bu kullanım alanı öncelikli olarak için tasarlanan yeni bir oyun platformu.

Bu uygulamaların ACTION_MANAGE_OVERLAY_PERMISSION SYSTEM_ALERT_WINDOW iznini almak için; uygulamalar daha sonra Doğrudan SYSTEM_ALERT_WINDOW.

MANAGE_OVERLAY_PERMISSION amaçları, kullanıcıyı her zaman sistem izinleri ekranına getirir

Android 11'den itibaren ACTION_MANAGE_OVERLAY_PERMISSION Intent'ler, kullanıcıyı her zaman üst düzey Ayarlar ekranına getirir. Burada, değiştirme işlemini SYSTEM_ALERT_WINDOW uygulamalar için izinler. Amaçtaki package: verileri yoksayılır.

Android'in önceki sürümlerinde ACTION_MANAGE_OVERLAY_PERMISSION amacı kullanıcıyı uygulamaya özel bir ekrana götürecek bir paket belirtebilir izin yönetiminden sorumlu kişidir. Bu işlev şu tarihten itibaren desteklenmemektedir: Android 11. Bunun yerine, kullanıcının önce istediği uygulamayı seçmesi gerekir kabul etme veya yetkiyi iptal etme hakkını saklı tutar. Bu değişiklik, kullanıcıları korumak amacıyla yapılmıştır bunu daha bilinçli bir şekilde yapabilirsiniz.

Telefon numaraları

Android 11, uygulamanızın , telefon numaralarını okurken kullanır.

Uygulamanız Android 11 veya sonraki bir sürümü hedefliyorsa ve telefon numarası API'leri aşağıdaki listede yer alıyorsa READ_PHONE_NUMBERS izni ile birlikte READ_PHONE_STATE izninin kullanılmasını gerektirir.

Uygulamanız, READ_PHONE_STATE adlı çocuğun listede yer alıyorsa tüm platformlarda READ_PHONE_STATE isteğinde bulunmaya devam edebilirsiniz. Android sürümleri. READ_PHONE_STATE iznini yalnızca yöntemlerine sahip değilseniz manifest dosyanızı aşağıdaki gibi güncelleyebilirsiniz:

  1. Uygulamanızın şunu kullanması için READ_PHONE_STATE beyanınızı değiştirin: izni yalnızca Android 10 (API düzeyi 29) ve önceki sürümlerde kullanılabilir.
  2. READ_PHONE_NUMBERS iznini ekleyin.

Aşağıdaki manifest bildirim snippet'inde bu işlem gösterilmektedir:

<manifest>
    <!-- Grants the READ_PHONE_STATE permission only on devices that run
         Android 10 (API level 29) and lower. -->
    <uses-permission android:name="android.permission.READ_PHONE_STATE"
                     android:maxSdkVersion="29" />
    <uses-permission android:name="android.permission.READ_PHONE_NUMBERS" />
</manifest>

Ek kaynaklar

Android 11'de izinlerde yapılan değişiklikler hakkında daha fazla bilgi için şu malzemeleri kullanabilirsiniz:

Videolar

Gizlilik konusundaki son değişikliklerle birlikte Android 11