Daha hassas bilgilere erişimi açıklayın

Konum, mikrofon ve kamera ile ilgili izinler, uygulamanızın kullanıcılarla ilgili özellikle hassas bilgilere erişmesini sağlar. Platform, bu sayfada açıklanan çeşitli mekanizmalar içerir. Bu mekanizmalar, kullanıcıların bilgi edinmesine ve hangi uygulamaların konum, mikrofon ve kameraya erişebileceğini kontrol edebilmesine yardımcı olur.

Gizliliği koruyan bu sistem özellikleri, gizlilikle ilgili en iyi uygulamaları izlediğiniz sürece uygulamanızın konum, mikrofon ve kamera ile ilgili izinleri nasıl işleyeceğini etkilemez.

Uygulamanızda özellikle aşağıdakileri yaptığınızdan emin olun:

  • Kullanıcı, uygulamanıza CAMERA iznini verene kadar cihazın kamerasına erişmeyi bekleyin.
  • Kullanıcı, uygulamanıza RECORD_AUDIO iznini verene kadar cihazın mikrofonuna erişmek için bekleyin.
  • Konum izinleri isteme hakkında açıklandığı şekilde ACCESS_COARSE_LOCATION veya ACCESS_FINE_LOCATION iznini istemeden önce kullanıcı, uygulamanızda konum gerektiren bir özellikle etkileşime girene kadar bekleyin.
  • ACCESS_BACKGROUND_LOCATION iznini istemeden önce kullanıcı uygulamanıza ACCESS_COARSE_LOCATION iznini veya ACCESS_FINE_LOCATION iznini verene kadar bekleyin.

Gizlilik Kontrol Paneli

Dikey bir zaman çizelgesi, konum bilgilerine erişen farklı uygulamaları ve erişimlerin ne zaman gerçekleştiğini gösterir
Şekil 1. Gizlilik Kontrol Paneli'nin bir parçası olan konum kullanımı ekranı.

Android 12 veya sonraki sürümleri çalıştıran desteklenen cihazlarda sistem ayarlarında bir Gizlilik Kontrol Paneli ekranı görünür. Bu ekranda kullanıcılar, uygulamaların konum, kamera ve mikrofon bilgilerine eriştiğini gösteren ayrı ekranlara erişebilirler. Her ekranda, farklı uygulamaların belirli bir veri türüne ne zaman eriştiğine dair bir zaman çizelgesi gösterilir. Şekil 1'de konum bilgilerine ilişkin veri erişimi zaman çizelgesi gösterilmektedir.

Veri erişiminin gerekçesini göster

Uygulamanız, kullanıcıların uygulamanızın konum, kamera veya mikrofon bilgilerine neden eriştiğini anlamalarına yardımcı olacak bir gerekçe sunabilir. Bu gerekçe, yeni Gizlilik Kontrol Paneli ekranında, uygulamanızın izinler ekranında veya her ikisinde birden gösterilebilir.

Uygulamanızın konum, kamera ve mikrofon bilgilerine neden eriştiğini açıklamak için aşağıdaki adımları tamamlayın:

  1. Başlatıldığında uygulamanızın belirli türde bir veri erişimi işlemi gerçekleştirmesinin nedenini açıklayan bir etkinlik ekleyin. Bu etkinlik içinde android:permission özelliğini START_VIEW_PERMISSION_USAGE olarak ayarlayın.

    Uygulamanız Android 12 veya sonraki bir sürümü hedefliyorsa android:exported özelliği için açıkça bir değer tanımlamanız gerekir.

  2. Yeni eklenen etkinliğe aşağıdaki intent filtresini ekleyin:

    <!-- android:exported required if you target Android 12. -->
    <activity android:name=".DataAccessRationaleActivity"
              android:permission="android.permission.START_VIEW_PERMISSION_USAGE"
              android:exported="true">
           <!-- VIEW_PERMISSION_USAGE shows a selectable information icon on
                your app permission's page in system settings.
                VIEW_PERMISSION_USAGE_FOR_PERIOD shows a selectable information
                icon on the Privacy Dashboard screen. -->
        <intent-filter>
           <action android:name="android.intent.action.VIEW_PERMISSION_USAGE" />
           <action android:name="android.intent.action.VIEW_PERMISSION_USAGE_FOR_PERIOD" />
           <category android:name="android.intent.category.DEFAULT" />
           ...
        </intent-filter>
    </activity>
    
  3. Veri erişimi gerekçesi etkinliğinizin ne göstermesi gerektiğine karar verin. Örneğin, uygulamanızın web sitesini veya bir yardım merkezi makalesini gösterebilirsiniz. Uygulamanızın eriştiği veri türleri ve erişimin ne zaman gerçekleştiği hakkında daha ayrıntılı bir açıklama sağlamak için, izin kullanımı amacını çağırırken sistem tarafından eklenen ekstra özellikleri işleyin:

Eklediğiniz intent filtrelerine bağlı olarak, kullanıcılar belirli ekranlarda uygulamanızın adının yanında bir bilgi simgesi görür:

  • VIEW_PERMISSION_USAGE işlemini içeren intent filtresini eklerseniz kullanıcılar bu simgeyi uygulamanızın sistem ayarlarında izinler sayfasındaki simgeyi görür. Bu işlemi tüm çalışma zamanı izinlerine uygulayabilirsiniz.
  • VIEW_PERMISSION_USAGE_FOR_PERIOD işlemini içeren intent filtresini eklerseniz, uygulamanız Gizlilik Kontrol Paneli ekranında her göründüğünde kullanıcılar uygulamanızın adının yanında simgeyi görür.

Kullanıcılar bu simgeyi seçtiklerinde uygulamanızın gerekçe etkinliği başlatılır.

Sağ üst köşede kamera simgesi ile mikrofon simgesini
         içeren yuvarlak bir dikdörtgen
Şekil 2. Son veri erişimini gösteren mikrofon ve kamera göstergeleri.

Göstergeler

Android 12 veya sonraki sürümleri çalıştıran cihazlarda bir uygulama mikrofona veya kameraya eriştiğinde durum çubuğunda bir simge görünür. Uygulama kapsamlı modda ise simge ekranın sağ üst köşesinde görünür. Kullanıcılar, şu anda mikrofonu veya kamerayı kullanmakta olan uygulamaları görmek için Hızlı Ayarlar'ı açıp simgeyi seçebilirler. Şekil 2'de, simgeleri içeren bir ekran görüntüsü gösterilmektedir.

Göstergelerin ekrandaki konumunu belirleme

Uygulamanız, yoğun içerik modunu veya tam ekran kullanıcı arayüzünü destekliyorsa göstergeler uygulamanızın kullanıcı arayüzü ile anlık olarak çakışabilir. Kullanıcı arayüzünüzü bu göstergelere uyarlamanıza yardımcı olmak için sistem, aşağıdaki kod snippet'inin gösterdiği getPrivacyIndicatorBounds() yöntemini kullanıma sunar. Bu API'yi kullanarak göstergelerin görünebileceği sınırları belirleyebilirsiniz. Sonrasında ekranınızın kullanıcı arayüzünü farklı bir şekilde düzenlemeye karar verebilirsiniz.

Kotlin

view.setOnApplyWindowInsetsListener { view, windowInsets ->
    val indicatorBounds = windowInsets.getPrivacyIndicatorBounds()
    // change your UI to avoid overlapping
    windowInsets
}

Açar/Kapatır

Hızlı ayar kutuları &quot;Kamera erişimi&quot; ve &quot;Mikrofon erişimi&quot; olarak etiketlenir
Şekil 3. Hızlı Ayarlar'da mikrofon ve kamera açma/kapatma düğmesi.

Android 12 veya sonraki sürümleri çalıştıran desteklenen cihazlarda kullanıcılar, tek bir açma/kapatma seçeneğine basarak cihazdaki tüm uygulamaların kamera ve mikrofon erişimini etkinleştirip devre dışı bırakabilir. Kullanıcılar, şekil 3'te gösterildiği gibi Hızlı Ayarlar'dan veya sistem ayarlarındaki Gizlilik ekranından açılıp kapatılabilir seçeneklere erişebilirler.

Kamera ve mikrofon açma/kapatma anahtarları cihazdaki tüm uygulamaları etkiler:

  • Kullanıcı kamera erişimini devre dışı bıraktığında uygulamanıza boş bir kamera feed'i gönderilir.
  • Kullanıcı mikrofon erişimini kapattığında uygulamanız sessiz bir ses alır. Ayrıca, HIGH_SAMPLING_RATE_SENSORS iznini beyan edip etmemenizden bağımsız olarak hareket sensörleri hız sınırlamasına tabidir.

Kullanıcı kamera veya mikrofona erişimi kapattıktan sonra kamera veya mikrofon bilgilerine erişmesi gereken bir uygulama başlattığında sistem kullanıcıya cihaz genelindeki açma/kapatma anahtarının kapalı olduğunu hatırlatır.

Cihaz desteğini kontrol edin

Bir cihazın mikrofon ve kamera açma/kapatma düğmelerini destekleyip desteklemediğini kontrol etmek için aşağıdaki kod snippet'inde gösterilen mantığı ekleyin:

Kotlin

val sensorPrivacyManager = applicationContext
        .getSystemService(SensorPrivacyManager::class.java)
        as SensorPrivacyManager
val supportsMicrophoneToggle = sensorPrivacyManager
        .supportsSensorToggle(Sensors.MICROPHONE)
val supportsCameraToggle = sensorPrivacyManager
        .supportsSensorToggle(Sensors.CAMERA)

Java

SensorPrivacyManager sensorPrivacyManager = getApplicationContext()
        .getSystemService(SensorPrivacyManager.class);
boolean supportsMicrophoneToggle = sensorPrivacyManager
        .supportsSensorToggle(Sensors.MICROPHONE);
boolean supportsCameraToggle = sensorPrivacyManager
        .supportsSensorToggle(Sensors.CAMERA);