Запрашивание разрешений на андроид в приложении Ionic React с использованием конденсатораAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Запрашивание разрешений на андроид в приложении Ionic React с использованием конденсатора

Сообщение Anonymous »

У меня есть ионный проект React, который успешно строит и работает на одном плюс 7 Pro, работающем Android 11. У меня проблемы с реализацией всех запросов разрешений, которые необходимо правильно функционировать. Я использую плагин Android разрешения для запуска запросов разрешений, и некоторые запросы работают, но ни одно из разрешений, связанных с Bluetooth. В частности, запросы разрешений на камеру и Access_fine_location должным образом побуждают пользователя принять/упасть, но любые разрешения Bluetooth не заставляют пользователя. Прежде чем я запрошу каждое разрешение, я выполняю чек, чтобы увидеть, было ли разрешение уже предоставлено или нет. Из четырех разрешений Bluetooth, которые я пытаюсь использовать, два отчета о том, что им уже было предоставлено (Bluetooth & Bluetooth_Admin) и два отчета, которые им не предоставлены (Bluetooth_Connect & Bluetooth_scan). Но когда я проверяю разрешения в информации приложения, это показывает, что единственными предоставленными разрешениями являются камера и access_fine_location, оба из которых у меня нет. Кто-нибудь может сказать мне, почему ни один из моих запросов на разрешение Bluetooth не работает? />import { Capacitor } from '@capacitor/core';
import { AndroidPermissions } from '@ionic-native/android-permissions';

const permissions =
{
//Working
requestCameraPermission() {
if (Capacitor.isNativePlatform()) {
AndroidPermissions.checkPermission(AndroidPermissions.PERMISSION.CAMERA).then(
result => {
if (result.hasPermission) {
//alert('you already have this permission')
alert('camera permission already granted');
} else {
//alert('please implement permission request')
AndroidPermissions.requestPermission(AndroidPermissions.PERMISSION.CAMERA);
}
}
)
}
else {
console.log('Capacitor not detected, this button will do nothing :(')
}
},

//NOT WORKING | App thinks request is already granted
requestBluetooth() {
if (Capacitor.isNativePlatform()) {
AndroidPermissions.checkPermission(AndroidPermissions.PERMISSION.BLUETOOTH).then(
result => {
if (result.hasPermission) {
alert('bluetooth permission already granted');
} else {
alert('bluetooth permission not granted');
AndroidPermissions.requestPermission(AndroidPermissions.PERMISSION.BLUETOOTH);
}
}
)
}
else {
console.log('Capacitor not detected, this button will do nothing :(')
}
},

//NOT WORKING | App thinks request is already granted
requestBluetoothAdmin() {
if (Capacitor.isNativePlatform()) {
AndroidPermissions.checkPermission(AndroidPermissions.PERMISSION.BLUETOOTH_ADMIN).then(
result => {
if (result.hasPermission) {
alert('bluetooth permission already granted');
} else {
alert('bluetooth permission not granted');
AndroidPermissions.requestPermission(AndroidPermissions.PERMISSION.BLUETOOTH_ADMIN);
}
}
)
}
else {
console.log('Capacitor not detected, this button will do nothing :(')
}
},

//NOT WORKING | permission not granted | request not working
requestBluetoothConnect() {
if (Capacitor.isNativePlatform()) {
AndroidPermissions.checkPermission(AndroidPermissions.PERMISSION.BLUETOOTH_CONNECT).then(
result => {
if (result.hasPermission) {
alert('bluetooth permission already granted');
} else {
alert('bluetooth permission not granted');
AndroidPermissions.requestPermission(AndroidPermissions.PERMISSION.BLUETOOTH_CONNECT);
}
}
)
}
else {
console.log('Capacitor not detected, this button will do nothing :(')
}
},

//NOTWORKING | permission not granted | request not working
requestBluetoothScan() {
if (Capacitor.isNativePlatform()) {
AndroidPermissions.checkPermission(AndroidPermissions.PERMISSION.BLUETOOTH_SCAN).then(
result => {
if (result.hasPermission) {
alert('bluetooth permission already granted');
} else {
alert('bluetooth permission not granted');
AndroidPermissions.requestPermission(AndroidPermissions.PERMISSION.BLUETOOTH_SCAN);
}
}
)
}
else {
console.log('Capacitor not detected, this button will do nothing :(')
}
},

//Working
requestFineLocation() {
if (Capacitor.isNativePlatform()) {
AndroidPermissions.checkPermission(AndroidPermissions.PERMISSION.ACCESS_FINE_LOCATION).then(
result => {
if (result.hasPermission) {
alert('fine location permission already granted');
} else {
alert('fine location permission not granted');
AndroidPermissions.requestPermission(AndroidPermissions.PERMISSION.ACCESS_FINE_LOCATION);
}
}
)
}
else {
console.log('Capacitor not detected, this button will do nothing :(')
}
}

}

export default permissions;
< /code>
android manifest.xml Файл, показывающий, что я правильно объявил разрешения, которые я пытаюсь использовать < /p>





























Подробнее здесь: https://stackoverflow.com/questions/701 ... -capacitor
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»