如题,既然是判断用户是否允许了摄像头权限,那么,咱们就忽略是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实现手机监控摄像头
# Android调用手机摄像头的方法
# android开发之调用手机的摄像头使用MediaRecorder录像并播放
# Android开发教程之调用摄像头功能的方法详解
# Android实现调用摄像头进行拍照功能
# Android中判断是否有前置摄像头、后置摄像头的方法
# Android实现调用摄像头拍照与视频功能
# Android调用前后摄像头同时工作实例代码
# Android使用MediaCodec将摄像头采集的视频编码为h264
# Android实现调用手机摄像头录像限制录像时长
# 感兴趣
# 掉了
# 跳转
# 关了
# 魅族
# 这是
# 就会
# 好了
# 给你
# 首次
# 太大
# 不动
# 弹出
# 下回
# 不做
# 可以看出
# 不为
# 人会
# 该怎么
# 换个
相关文章:
如何通过网站建站时间优化SEO与用户体验?
北京专业网站制作设计师招聘,北京白云观官方网站?
常州企业网站制作公司,全国继续教育网怎么登录?
一键网站制作软件,义乌购一件代发流程?
大连 网站制作,大连天途有线官网?
如何通过西部数码建站助手快速创建专业网站?
如何通过wdcp面板快速创建网站?
开源网站制作软件,开源网站什么意思?
图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?
武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?
整蛊网站制作软件,手机不停的收到各种网站的验证码短信,是手机病毒还是人为恶搞?有这种手机病毒吗?
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
制作网站的公司有哪些,做一个公司网站要多少钱?
建站主机默认首页配置指南:核心功能与访问路径优化
公司网站建设制作费用,想建设一个属于自己的企业网站,该如何去做?
制作网站的软件免费下载,免费制作app哪个平台好?
哈尔滨网站建设策划,哈尔滨电工证查询网站?
如何彻底卸载建站之星软件?
建站OpenVZ教程与优化策略:配置指南与性能提升
外贸公司网站制作哪家好,maersk船公司官网?
建站之星安装失败:服务器环境不兼容?
,如何利用word制作宣传手册?
如何用搬瓦工VPS快速搭建个人网站?
Python lxml的etree和ElementTree有什么区别
广州美橙建站如何快速搭建多端合一网站?
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
代刷网站制作软件,别人代刷火车票靠谱吗?
赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?
建站之星CMS建站配置指南:模板选择与SEO优化技巧
高防网站服务器:DDoS防御与BGP线路的AI智能防护方案
公司门户网站制作流程,华为官网怎么做?
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
内网网站制作软件,内网的网站如何发布到外网?
网站制作新手教程,新手建设一个网站需要注意些什么?
如何在香港免费服务器上快速搭建网站?
网站视频怎么制作,哪个网站可以免费收看好莱坞经典大片?
微网站制作教程,我微信里的网站怎么才能复制到浏览器里?
c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】
如何在宝塔面板创建新站点?
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
小说建站VPS选用指南:性能对比、配置优化与建站方案解析
香港服务器建站指南:免备案优势与SEO优化技巧全解析
如何选购建站域名与空间?自助平台全解析
宝塔面板如何快速创建新站点?
制作网页的网站有哪些,电脑上怎么做网页?
微信h5制作网站有哪些,免费微信H5页面制作工具?
临沂网站制作企业,临沂第三中学官方网站?
如何在万网自助建站中设置域名及备案?
免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?
PHP正则匹配日期和时间(时间戳转换)的实例代码
*请认真填写需求信息,我们会在24小时内与您取得联系。