返回顶部
首页 > 资讯 > 移动开发 >Android判断用户是否允许了摄像头权限实例代码
  • 644
分享到

Android判断用户是否允许了摄像头权限实例代码

摄像摄像头Android 2022-06-06 01:06:49 644人浏览 安东尼
摘要

如题,既然是判断用户是否允许了摄像头权限,那么,咱们就忽略是Manifest配置的问题,因为这是开发者的事。 用户在使用APP时,如果首次进入用摄像头的地方,手机会提示是否允许

如题,既然是判断用户是否允许了摄像头权限,那么,咱们就忽略是Manifest配置的问题,因为这是开发者的事。

用户在使用APP时,如果首次进入用摄像头的地方,手机会提示是否允许该应用使用摄像头。有些用户小手一抖、或者压根就不想开启摄像头,咔擦,就给你关了,那好了。下回再进入该功能,就会出现APP一片黑,或者崩溃的情况。

作为开发者,正常思路是要提示用户,摄像头权限被你关了,赶紧去手动开启,不然,就别想用该功能了!那,咱们该怎么实现这个思路呢?

一、判断摄像头权限

Android api没提供判断摄像头权限是否被关闭的方法,但是,我们依然有办法,直接上代码:


public static booleanisCameraUseable() {
boolean canUse =true;
Camera mCamera =null;
try{
mCamera = Camera.open();
// setParameters 是针对魅族MX5。MX5通过Camera.open()拿到的Camera对象不为null
Camera.Parameters mParameters = mCamera.getParameters();
mCamera.setParameters(mParameters);
}catch(Exception e) {
canUse =false;
}
 if(mCamera !=null) {
 mCamera.release();
 }
 return canUse;
 }

上面方法,放心copy到你的代码里,在使用摄像头之前,调用一下,返回ture说明摄像头权限是开启的。反之,摄像头权限被用户关掉了。

附注:

1、可以看出代码实现思路是通过调用Camera.open(),然后根据是否出现异常来判断权限状态。感兴趣的同学可以看看Android SDK里的android.hardware.Camera这个类,在第490行左右的代码,Google就是这么干的。


Camera(intcameraid) {
interr = cameraInitNORMal(cameraId);
if(checkInitErrors(err)) {
switch(err) {
case EACCESS:
throw newRuntimeException("Fail to connect to camera service");
case EnodeV:
throw newRuntimeException("Camera initialization failed");
default:
// Should never hit this.
throw newRuntimeException("Unknown camera error");
}
}
}

2、由于魅族MX5的ROM改了很多东西,google大哥的方法不能完全直接用,于是又加了上面有注释处的代码,这里不做过多解释。

二、给提示

如果摄像头权限被用户关掉了,处理思路是:弹出个对话框,提示用户去系统设置中,找到摄像头管理权限界面,手动打开摄像头权限。

三、跳转设置界面手动开启权限

跳转设置界面的代码如下:


Intent intent =new Intent(Settings.ACTION_SETTINGS);
context.startActivity(intent);

附注:有的人会问,为啥不直接跳到摄像头权限管理界面去呢,换个action不就行了?是的,这种思路没错,但是不同厂家手机打开摄像头权限管理界面的action是不一样的,差别太大,本人试过,整不动。。。感兴趣的同学可以试试哦,验证一下

您可能感兴趣的文章:Android实现调用摄像头拍照与视频功能Android开发实现的IntentUtil跳转多功能工具类【包含视频、音频、图片、摄像头等操作功能】android开发之调用手机的摄像头使用MediaRecorder录像并播放Android开发教程之调用摄像头功能的方法详解Android中判断是否有前置摄像头、后置摄像头的方法Android实现调用摄像头进行拍照功能Android调用前后摄像头同时工作实例代码Android实现调用摄像头Android实现手机摄像头的自动对焦Android使用MediaCodec将摄像头采集的视频编码为h264


--结束END--

本文标题: Android判断用户是否允许了摄像头权限实例代码

本文链接: https://lsjlt.com/news/21756.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作