Класс PermissionsAndroid
Класс PermissionsAndroid работает только на Android.
Константы PERMISSIONS задают имена разрешений.
Константы RESULTS описывают ответ пользователя.
Методы check,
request
и requestMultiple
возвращают промис со строкой или объектом результатов.
Синтаксис
import { PermissionsAndroid } from 'react-native';
PermissionsAndroid.request(PermissionsAndroid.PERMISSIONS.CAMERA);
Значения
| Значение | Описание |
|---|---|
CAMERA |
Доступ к камере устройства. |
ACCESS_FINE_LOCATION |
Точная геолокация. |
ACCESS_COARSE_LOCATION |
Приблизительная геолокация. |
RECORD_AUDIO |
Запись звука с микрофона. |
POST_NOTIFICATIONS |
Показ уведомлений на новых версиях Android. |
READ_CONTACTS |
Чтение списка контактов. |
GRANTED |
Пользователь разрешил доступ. Строка результата 'granted'.
|
DENIED |
Доступ отклонён. Строка результата 'denied'.
|
NEVER_ASK_AGAIN |
Отказ с запретом повторного запроса. Строка 'never_ask_again'.
|
Имена разрешений берут из PermissionsAndroid.PERMISSIONS,
константы результатов - из PermissionsAndroid.RESULTS.
Методы
| Метод | Описание |
|---|---|
request |
Показывает системный запрос одного разрешения. |
check |
Проверяет текущий статус без диалога. |
requestMultiple |
Запрашивает несколько разрешений за один вызов. |
Пример
Давайте проверим камеру перед запросом:
import { PermissionsAndroid } from 'react-native';
PermissionsAndroid.check(PermissionsAndroid.PERMISSIONS.CAMERA).then((res) => {
console.log(res);
});
Промис вернёт true или false без показа диалога.
Пример
Давайте запросим микрофон из компонента на Android:
import { View, Text, Pressable, PermissionsAndroid, Platform } from 'react-native';
export default function App() {
const ask = async () => {
if (Platform.OS !== 'android') {
return;
}
await PermissionsAndroid.request(
PermissionsAndroid.PERMISSIONS.RECORD_AUDIO,
);
};
return (
<View>
<Pressable onPress={ask}>
<Text>abcde</Text>
</Pressable>
</View>
);
}
На экране текст 'abcde'; на Android по нажатию откроется системный диалог.
Смотрите также
-
метод
request,
который показывает диалог разрешения -
метод
openSettings,
который открывает настройки приложения -
класс
Platform,
который отличает Android -
класс
ToastAndroid,
который показывает короткое сообщение на Android