UprawnieniaAndroid
Ta strona została przetłumaczona przez PageTurner AI (beta). Nie jest oficjalnie zatwierdzona przez projekt. Znalazłeś błąd? Zgłoś problem →
PermissionsAndroid zapewnia dostęp do nowego modelu uprawnień w Androidzie M. Tak zwane "normalne" uprawnienia są domyślnie przyznawane podczas instalacji aplikacji, o ile znajdują się w AndroidManifest.xml. Natomiast "niebezpieczne" uprawnienia wymagają wyświetlenia okna dialogowego. Ten moduł należy używać właśnie dla takich uprawnień.
Na urządzeniach ze starszymi wersjami SDK (przed 23), uprawnienia są automatycznie przyznawane jeśli występują w manifeście, więc check zawsze powinien zwracać true, a request zawsze rozwiązywać się do PermissionsAndroid.RESULTS.GRANTED.
Jeśli użytkownik wcześniej wyłączył uprawnienie, o które prosisz, system operacyjny zasugeruje twojej aplikacji wyświetlenie uzasadnienia potrzeby tego uprawnienia. Opcjonalny argument rationale spowoduje wyświetlenie specjalnego monitu tylko wtedy, gdy jest to konieczne - w przeciwnym razie pojawi się standardowy komunikat o uprawnienie.
Przykład
Uprawnienia wymagające monitowania użytkownika
Dostępne jako stałe pod PermissionsAndroid.PERMISSIONS:
-
READ_CALENDAR: 'android.permission.READ_CALENDAR' -
WRITE_CALENDAR: 'android.permission.WRITE_CALENDAR' -
CAMERA: 'android.permission.CAMERA' -
READ_CONTACTS: 'android.permission.READ_CONTACTS' -
WRITE_CONTACTS: 'android.permission.WRITE_CONTACTS' -
GET_ACCOUNTS: 'android.permission.GET_ACCOUNTS' -
ACCESS_FINE_LOCATION: 'android.permission.ACCESS_FINE_LOCATION' -
ACCESS_COARSE_LOCATION: 'android.permission.ACCESS_COARSE_LOCATION' -
ACCESS_BACKGROUND_LOCATION: 'android.permission.ACCESS_BACKGROUND_LOCATION' -
RECORD_AUDIO: 'android.permission.RECORD_AUDIO' -
READ_PHONE_STATE: 'android.permission.READ_PHONE_STATE' -
CALL_PHONE: 'android.permission.CALL_PHONE' -
READ_CALL_LOG: 'android.permission.READ_CALL_LOG' -
WRITE_CALL_LOG: 'android.permission.WRITE_CALL_LOG' -
ADD_VOICEMAIL: 'com.android.voicemail.permission.ADD_VOICEMAIL' -
USE_SIP: 'android.permission.USE_SIP' -
PROCESS_OUTGOING_CALLS: 'android.permission.PROCESS_OUTGOING_CALLS' -
BODY_SENSORS: 'android.permission.BODY_SENSORS' -
SEND_SMS: 'android.permission.SEND_SMS' -
RECEIVE_SMS: 'android.permission.RECEIVE_SMS' -
READ_SMS: 'android.permission.READ_SMS' -
RECEIVE_WAP_PUSH: 'android.permission.RECEIVE_WAP_PUSH' -
RECEIVE_MMS: 'android.permission.RECEIVE_MMS' -
READ_EXTERNAL_STORAGE: 'android.permission.READ_EXTERNAL_STORAGE' -
WRITE_EXTERNAL_STORAGE: 'android.permission.WRITE_EXTERNAL_STORAGE' -
BLUETOOTH_CONNECT: 'android.permission.BLUETOOTH_CONNECT' -
BLUETOOTH_SCAN: 'android.permission.BLUETOOTH_SCAN' -
BLUETOOTH_ADVERTISE: 'android.permission.BLUETOOTH_ADVERTISE' -
ACCESS_MEDIA_LOCATION: 'android.permission.ACCESS_MEDIA_LOCATION' -
ACCEPT_HANDOVER: 'android.permission.ACCEPT_HANDOVER' -
ACTIVITY_RECOGNITION: 'android.permission.ACTIVITY_RECOGNITION' -
ANSWER_PHONE_CALLS: 'android.permission.ANSWER_PHONE_CALLS' -
READ_PHONE_NUMBERS: 'android.permission.READ_PHONE_NUMBERS' -
UWB_RANGING: 'android.permission.UWB_RANGING' -
BODY_SENSORS_BACKGROUND: 'android.permission.BODY_SENSORS_BACKGROUND' -
READ_MEDIA_IMAGES: 'android.permission.READ_MEDIA_IMAGES' -
READ_MEDIA_VIDEO: 'android.permission.READ_MEDIA_VIDEO' -
READ_MEDIA_AUDIO: 'android.permission.READ_MEDIA_AUDIO' -
POST_NOTIFICATIONS: 'android.permission.POST_NOTIFICATIONS' -
NEARBY_WIFI_DEVICES: 'android.permission.NEARBY_WIFI_DEVICES' -
READ_VOICEMAIL: 'com.android.voicemail.permission.READ_VOICEMAIL', -
WRITE_VOICEMAIL: 'com.android.voicemail.permission.WRITE_VOICEMAIL',
Ciągi wynikowe dla żądania uprawnień
Dostępne jako stałe w PermissionsAndroid.RESULTS:
-
GRANTED: 'granted' -
DENIED: 'denied' -
NEVER_ASK_AGAIN: 'never_ask_again'
Dokumentacja
Metody
check()
static check(permission: Permission): Promise<boolean>;
Zwraca Promise rozwiązujący się do wartości logicznej (boolean) wskazującej, czy określone uprawnienie zostało przyznane.
Parametry:
| Name | Type | Required | Description |
|---|---|---|---|
| permission | string | Yes | The permission to check for. |
request()
static request(
permission: Permission,
rationale?: Rationale,
): Promise<PermissionStatus>;
Wyświetla monit do użytkownika o włączenie uprawnienia i zwraca Promise rozwiązujący się do wartości ciągu znaków (patrz: ciągi wynikowe powyżej) wskazującej, czy użytkownik zezwolił na żądanie, odmówił, czy też nie chce być ponownie pytany.
Jeśli podano rationale, funkcja ta sprawdza w systemie operacyjnym, czy konieczne jest wyświetlenie okna dialogowego wyjaśniającego, dlaczego uprawnienie jest potrzebne (https://developer.android.com/training/permissions/requesting.html#explain), a następnie pokazuje systemowe okno dialogowe uprawnień.
Parametry:
| Name | Type | Required | Description |
|---|---|---|---|
| permission | string | Yes | The permission to request. |
| rationale | object | No | See rationale below. |
Uzasadnienie:
| Name | Type | Required | Description |
|---|---|---|---|
| title | string | Yes | The title of the dialog. |
| message | string | Yes | The message of the dialog. |
| buttonPositive | string | Yes | The text of the positive button. |
| buttonNegative | string | No | The text of the negative button. |
| buttonNeutral | string | No | The text of the neutral button. |
requestMultiple()
static requestMultiple(
permissions: Permission[],
): Promise<{[key in Permission]: PermissionStatus}>;
Wyświetla monit do użytkownika o włączenie wielu uprawnień w tym samym oknie dialogowym i zwraca obiekt z uprawnieniami jako kluczami i ciągami znaków jako wartościami (patrz: ciągi wynikowe powyżej) wskazującymi, czy użytkownik zezwolił na żądanie, odmówił, czy też nie chce być ponownie pytany.
Parametry:
| Name | Type | Required | Description |
|---|---|---|---|
| permissions | array | Yes | Array of permissions to request. |