mui获取相机权限

本文分享了在MUI项目中实现人脸检测功能时遇到的摄像头权限问题及解决方案,包括直接请求权限的代码示例和引导用户手动开启权限的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在做一个mui的项目,要用到人脸检测,mui上点打开了这两个相应的权限也没有作用

"<uses-feature android:name=\"android.hardware.camera\"/>",
 "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",

最后找了好久直接手动打开,废话不多说,直接上代码

//获取摄像头权限
			function requestPermission() {  
			plus.android.requestPermissions(  
				["android.permission.CAMERA"],  
				function(resultObj){  
					for (var i = 0; i < resultObj.granted.length; i++ ) {  
						var grantedPermission = resultObj.granted[i];  
						console.log('已获取的权限:'+ grantedPermission);  
					}  
					for (var i = 0; i < resultObj.deniedPresent.length; i++  ) {  
						var deniedPresentPermission = resultObj.deniedPresent[i];  
						console.log('拒绝本次申请的权限:'+ deniedPresentPermission );  
					}  
					for (var i = 0; i < resultObj.deniedAlways.length; i++  ) {  
						var deniedAlwaysPermission = resultObj.deniedAlways[i];  
						console.log('永久拒绝申请的权限:'+ deniedAlwaysPermission);  
					}  
					// 若所需权限被永久拒绝,则打开APP设置界面,可以在APP设置界面打开相应权限  
					if (resultObj.deniedAlways.length > 0) {  
						var Intent = plus.android.importClass("android.content.Intent");  
						var Settings = plus.android.importClass("android.provider.Settings");  
						var Uri = plus.android.importClass("android.net.Uri");  
						var mainActivity = plus.android.runtimeMainActivity();  
						var intent = new Intent();  
						intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);  
						var uri = Uri.fromParts("package", mainActivity.getPackageName(), null);  
						intent.setData(uri);  
						mainActivity.startActivity(intent);  
					}  
				},  
				function(error){  
					console.log('申请权限错误:'+ error.code+ " = "+ error.message);  
				});  
			}  

还有一个是去设置里打开相机权限

var msg = "请在应用权限里设置允许使用相机权限";  
				mui.alert(msg,"开启相机权限","去开启",function(){          
					if (mui.os.ios) {  
						plus.runtime.openURL("app-settings:CAMERA");  
					} else {  
						var main = plus.android.runtimeMainActivity();  
						var Intent = plus.android.importClass("android.content.Intent");  
						var Build = plus.android.importClass("android.os.Build");  
						var Uri = plus.android.importClass("android.net.Uri");  
						var intent = new Intent();  
						intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  
						if (Build.VERSION.SDK_INT >= 9) {//系统8.0以上的  
							intent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS");  
							intent.setData(Uri.fromParts("package", main.getPackageName(), null));  
						} else if (Build.VERSION.SDK_INT <= 8) {//系统8.0以下的  
							intent.setAction(Intent.ACTION_VIEW);  
							intent.setClassName("com.android.settings", 			"com.android.setting.InstalledAppDetails");  
							intent.putExtra("com.android.settings.ApplicationPkgName", main.getPackageName());  
						}  
						main.startActivity(intent);  
						
						//  
					}  
				})

好了,本次分享到此结束,转载请保留原作者地址以及姓名(本人无偿分享经验,有偿接单制作APP,ios和安卓均有APP已上线,有需要可以联系我)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿锅锅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值