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

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: 'denied'

  • NEVER_ASK_AGAIN: 'never_ask_again'


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.