const checkPermission = () => {
return new Promise((resolve) => {
const permissions: any = {
'android.permission.FOREGROUND_SERVICE': '前台服务', // 前台服务
'android.permission.WAKE_LOCK': '允许程序在手机屏幕关闭后后台进程仍然运行', // 允许程序在手机屏幕关闭后后台进程仍然运行
'android.permission.VIBRATE': '允许程序振动', // 允许程序振动
'android.permission.BLUETOOTH': '蓝牙权限', // 蓝牙权限
'android.permission.BLUETOOTH_SCAN': '蓝牙权限', // 蓝牙权限
'android.permission.BLUETOOTH_ADMIN': '蓝牙权限', // 蓝牙权限
'android.permission.BLUETOOTH_CONNECT': '蓝牙权限', // 蓝牙权限
'android.permission.ACCESS_FINE_LOCATION': '位置信息权限', // 定位
'android.permission.ACCESS_COARSE_LOCATION': '位置信息权限', // 定位
'android.permission.CALL_PHONE': '电话权限' // 电话权限
};
plus.android.requestPermissions(
Object.keys(permissions), //这里面放需要的权限
function (resultObj) {
if (resultObj.granted.length < Object.keys(permissions).length) {
//resultObj.granted是授权的权限数组
//resultObj.deniedAlways是拒绝的权限数组
resolve(false);
let noAuth: any = '';
resultObj.deniedAlways.forEach((key: string) => {
noAuth += (noAuth ? ',' : '') + permissions[key];
});
uni.showModal({
content: '程序运行需获取以下权限:' + noAuth,
showCancel: false,
success() {
//没有开对应的权限,打开app的系统权限管理页
let Intent = plus.android.importClass('android.content.Intent');
let Settings = plus.android.importClass('android.provider.Settings');
let Uri = plus.android.importClass('android.net.Uri');
let mainActivity = plus.android.runtimeMainActivity();
let intent = new Intent();
intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
let uri = Uri.fromParts('package', mainActivity.getPackageName(), null);
intent.setData(uri);
mainActivity.startActivity(intent);
}
});
} else {
resolve(true);
}
}
);
});
};
export default checkPermission;
使用文章来源地址https://www.toymoban.com/news/detail-679185.html
import checkPermission from './authDisposableGet';
checkPermission(); // 可以使用async/await或then/catch
文章来源:https://www.toymoban.com/news/detail-679185.html
到了这里,关于uniapp:安卓一次性获取所需权限的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!