Przejdź do treści głównej
Wersja: 0.78

UprawnieniaAndroid

Nieoficjalne Tłumaczenie Beta

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: 'odmówiono'

  • NEVER_ASK_AGAIN: 'nigdy_nie_pytaj_ponownie'


Dokumentacja

Metody​

check()​

tsx
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:

NameTypeRequiredDescription
permissionstringYesThe permission to check for.

request()​

tsx
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:

NameTypeRequiredDescription
permissionstringYesThe permission to request.
rationaleobjectNoSee rationale below.

Uzasadnienie:

NameTypeRequiredDescription
titlestringYesThe title of the dialog.
messagestringYesThe message of the dialog.
buttonPositivestringYesThe text of the positive button.
buttonNegativestringNoThe text of the negative button.
buttonNeutralstringNoThe text of the neutral button.

requestMultiple()​

tsx
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:

NameTypeRequiredDescription
permissionsarrayYesArray of permissions to request.