Wyjaśnij dostęp do bardziej poufnych informacji

Aplikacja przyznaje aplikacji uprawnienia związane z lokalizacją, mikrofonem i aparatem dostępu do szczególnie poufnych informacji o użytkownikach. Platforma ta obejmuje za pomocą kilku mechanizmów opisanych na tej stronie, aby ułatwić użytkownikom kontrolować dostęp aplikacji do lokalizacji, mikrofonu i aparatu.

Te chroniące prywatność funkcje systemowe nie powinny mieć wpływu na sposób obsługi aplikacji uprawnienia związane z lokalizacją, mikrofonem i aparatem, o ile przestrzegać sprawdzonych metod ochrony prywatności.

W szczególności upewnij się, że w aplikacji:

Panel prywatności

Pionowa oś czasu przedstawia różne aplikacje, które uzyskały
         informacje o lokalizacji oraz czas uzyskania dostępu;
Rysunek 1. Ekran o korzystaniu z lokalizacji (część strony Prywatność) Panel.

Na obsługiwanych urządzeniach z Androidem 12 lub nowszym ustawienie Prywatność W ustawieniach systemowych pojawi się ekran panelu. Na tym ekranie użytkownicy mają dostęp do oddzielne ekrany, które wyświetlają się, gdy aplikacje korzystają z lokalizacji, aparatu i mikrofonu i informacjami o nich. Na każdym ekranie widać oś czasu z danymi aplikacjami, które korzystały z określonego typu danych. Rysunek 1 przedstawia oś czasu dostępu do danych o lokalizacji i informacjami o nich.

Pokaż uzasadnienie dostępu do danych

Aplikacja może zawierać uzasadnienie dla użytkowników, które pomoże im zrozumieć, dlaczego właśnie ta aplikacja uzyskuje dostęp do informacji o lokalizacji, aparacie lub mikrofonie. To uzasadnienie może się pojawić na nowym ekranie Panelu prywatności, ekranie uprawnień aplikacji lub na obu tych ekranach.

Aby wyjaśnić, dlaczego aplikacja uzyskuje dostęp do informacji o lokalizacji, aparacie i mikrofonie, wykonaj te czynności:

  1. Dodaj aktywność, która na początku będzie uzasadnieniem dla Twojej aplikacji. wykonanie określonego działania związanego z dostępem do danych. W ramach tej aktywności ustaw Atrybut android:permission do START_VIEW_PERMISSION_USAGE.

    Jeśli aplikacja jest kierowana na Androida 12 lub nowszego, musisz wyraźnie wskazać, podaj wartość parametru android:exported .

  2. Do nowo dodanego działania dodaj ten filtr intencji:

    <!-- 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. Określ, jakie informacje o uzasadnieniu dostępu do danych mają wyświetlać. Na przykład: może wyświetlić się strona Twojej aplikacji lub artykuł w Centrum pomocy. Aby zwiększyć szczegółowe omówienie typów danych, do których aplikacja ma dostęp, oraz obsługa dodatków, które system uwzględnia w momencie uzyskania dostępu. wywołuje intencję użycia uprawnień:

W zależności od dodanych filtrów intencji użytkownicy zobaczą ikonę informacji obok nazwy aplikacji na niektórych ekranach:

  • Jeśli dodasz filtr intencji, który zawiera atrybut VIEW_PERMISSION_USAGE użytkownicy widzą ikonę na stronie uprawnień aplikacji w ustawieniach systemu. Ty może zastosować to działanie do wszystkich uprawnień czasu działania.
  • Jeśli dodasz filtr intencji, który zawiera parametr VIEW_PERMISSION_USAGE_FOR_PERIOD, użytkownicy widzą ikonę obok Twojego jej nazwę, która pojawia się na ekranie Panelu prywatności.

Gdy użytkownik kliknie tę ikonę, rozpocznie się uzasadnienie Twojej działania aplikacji.

zaokrąglonego prostokąta w prawym górnym rogu,
         zawiera ikonę kamery i mikrofonu
Rysunek 2. wskaźniki mikrofonu i aparatu, które pokazują niedawny dostęp do danych.

Wskaźniki

na urządzeniach z Androidem 12 lub nowszym, gdy aplikacja uzyskuje dostęp do: mikrofonu lub kamery, na pasku stanu pojawi się ikona. Jeśli aplikacja jest w w trybie pojemnym, ikona w prawym górnym rogu ekranu. Użytkownicy mogą otworzyć Szybkie ustawienia i wybrać kliknij ikonę, aby zobaczyć, które aplikacje używają obecnie mikrofonu lub aparatu. Ilustracja 2 przedstawia przykładowy zrzut ekranu z ikonami.

Określanie lokalizacji na ekranie wskaźników

Jeśli aplikacja obsługuje tryb pojemny lub interfejs pełnoekranowy, wskaźniki mogą tymczasowo nakładają się na interfejs aplikacji. Aby dostosować interfejs do tych wskaźników, system wprowadza getPrivacyIndicatorBounds() omówiono w tym fragmencie kodu. Za pomocą tego interfejsu API możesz: i określanie granic, gdzie mogą pojawić się wskaźniki. Możesz wtedy zdecydować się uporządkować interfejs ekranu w inny sposób.

Kotlin

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

Przełącza

Kafelki Szybkich ustawień mają etykietę „Dostęp do aparatu” oraz
         „Dostęp do mikrofonu”
Rysunek 3. Przełącznik mikrofonu i aparatu Szybkie ustawienia.

na obsługiwanych urządzeniach, które działają Androida 12 lub nowszego, użytkownicy mogą włączać i wyłączać aparat oraz dostęp do mikrofonu dla wszystkich aplikacji na urządzeniu przez naciśnięcie jednego przełącznika . Użytkownicy mogą korzystać z opcji przełączania w Szybkim Ustawienia, jak pokazano to tutaj: ilustrację 3 lub na Ekranie prywatności w ustawieniach systemu.

Przełączniki aparatu i mikrofonu mają wpływ na wszystkie aplikacje na urządzeniu:

  • Gdy użytkownik wyłączy dostęp do kamery, aplikacja otrzyma pusty obraz z kamery.
  • Gdy użytkownik wyłączy dostęp do mikrofonu, aplikacja otrzyma cichy dźwięk. Dodatkowo czujniki ruchu są objęte ograniczeniami, niezależnie od tego, czy zadeklarujesz HIGH_SAMPLING_RATE_SENSORS. uprawnienia.

Gdy użytkownik wyłączy dostęp do kamery lub mikrofonu, uruchamia aplikację, która wymaga dostępu do informacji o kamerze lub mikrofonie, system przypomina użytkownikowi, że przełącznik dla całego urządzenia jest wyłączony.

Sprawdź, czy urządzenie jest obsługiwane

Aby sprawdzić, czy urządzenie obsługuje przełączniki mikrofonu i aparatu, dodaj funkcję logiczną widoczny w następującym fragmencie kodu:

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);