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:
- Poczekaj, aż użytkownik przyzna
CAMERA
uprawnienia dostępu do aparatu urządzenia aplikacji. - Poczekaj, zanim użytkownik przyzna dostęp do mikrofonu urządzenia
RECORD_AUDIO
swojej aplikacji. - poczekaj, aż użytkownik wejdzie w interakcję z funkcją aplikacji, która wymaga tej funkcji.
lokalizacji, zanim poprosisz o
ACCESS_COARSE_LOCATION
lubACCESS_FINE_LOCATION
zgodnie z opisem w przewodniku wysyłania próśb o udostępnienie lokalizacji uprawnienia. - Poczekaj, aż użytkownik przyzna aplikacji:
ACCESS_COARSE_LOCATION
lubACCESS_FINE_LOCATION
, zanim poprosisz oACCESS_BACKGROUND_LOCATION
. uprawnienia.
Panel prywatności
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 dla 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 dostęp do informacji o lokalizacji, aparacie lub mikrofonie. Ten opis może się wyświetlać na nowym ekranie ustawień prywatności lub na ekranie uprawnień aplikacji albo na obu tych ekranach.
Aby wyjaśnić, dlaczego aplikacja uzyskuje dostęp do informacji o lokalizacji, aparacie i mikrofonie, wykonaj te czynności:
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
doSTART_VIEW_PERMISSION_USAGE
.Jeśli aplikacja jest kierowana na Androida 12 lub nowszego, musisz wyraźnie wskazać, podaj wartość parametru
android:exported
.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>
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ń:
- Jeśli system wywoła funkcję
ACTION_VIEW_PERMISSION_USAGE
, aplikacja może pobierz wartość dla argumentuEXTRA_PERMISSION_GROUP_NAME
- Jeśli system wywoła funkcję
ACTION_VIEW_PERMISSION_USAGE_FOR_PERIOD
, aplikacja może pobierać wartości dlaEXTRA_PERMISSION_GROUP_NAME
,EXTRA_ATTRIBUTION_TAGS
,EXTRA_START_TIME
, iEXTRA_END_TIME
.
- Jeśli system wywoła funkcję
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 obok nazwy aplikacji wyświetlanej na ekranie Panelu prywatności.
Gdy użytkownik kliknie tę ikonę, rozpocznie się uzasadnienie Twojej działania aplikacji.
Wskaźniki
Na urządzeniach z Androidem 12 lub nowszym, gdy aplikacja uzyskuje dostęp do mikrofonu lub aparatu, na pasku stanu pojawia się ikona. Jeśli aplikacja jest w trybie pełnoekranowym, ikona pojawi się 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()
co pokazuje poniższy fragment 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
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 aparatu, Twoja 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.
Sprawdzanie obsługi urządzenia
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);