android+获取联系人权限被禁用,摄像头、通讯录等权限被禁用、开启有没有相关回调事件?...

本文主要讨论在Android应用中动态申请摄像头权限的问题。当用户同意权限后,回调函数未正常触发,需要二次操作才能使用。同时,当用户选择禁止并不再提醒时,如何进行判断和处理。代码示例展示了如何使用`checkPermission`和`goAndroidSetting`函数进行权限检查和设置跳转。
摘要由CSDN通过智能技术生成

有两个问题:

一、动态申请摄像头权限,用户点同意后没有相关回调,用户需要第二次点击相应功能才可以使用

二、用户点击禁止且不再提醒的时候,如何做判断

相关代码如下:

function checkPermission(ArrPermissions, callback) {

let os = uni.getSystemInfoSync().platform

if (os == 'android') {

let Build = plus.android.importClass("android.os.Build")

let Manifest = plus.android.importClass("android.Manifest")

let MainActivity = plus.android.runtimeMainActivity();

//let context=main.getApplicationContext(); //未用到,在此仅供参考

let hasPermission = true;

for (let permission of ArrPermissions) {

if (Build.VERSION.SDK_INT >= 23) {

let result = MainActivity.checkSelfPermission(permission)

console.info("权限校验结果=" + result)

//没有权限

if (result == -1) {

//跳转到应用详情页面

//goAndroidSetting()

hasPermission = false

break

}

}

}

if (!hasPermission) {

let REQUEST_CODE_CONTACT = 101;

if (Build.VERSION.SDK_INT >= 23) {

//这里请求权限后,无法获取到结果,有没有好的处理方式

MainActivity.requestPermissions(ArrPermissions, REQUEST_CODE_CONTACT);

}

} else {

if (callback) callback()

}

} else if (os == 'ios') {

if (callback) callback()

}

}

function goAndroidSetting() {

let Uri = plus.android.importClass("android.net.Uri");

let Settings = plus.android.importClass("android.provider.Settings");

let context = plus.android.runtimeMainActivity();

let packageURI = Uri.parse("package:io.dcloud.HBuilder");

let intent = plus.android.newObject("android.content.Intent", Settings.ACTION_APPLICATION_DETAILS_SETTINGS, packageURI);

context.startActivity(intent);

}

module.exports = {

checkPermission,

goAndroidSetting

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值