全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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

如题,既然是判断用户是否允许了摄像头权限,那么,咱们就忽略是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实现调用手机摄像头录像限制录像时长  # 感兴趣  # 掉了  # 跳转  # 关了  # 魅族  # 这是  # 就会  # 好了  # 给你  # 首次  # 太大  # 不动  # 弹出  # 下回  # 不做  # 可以看出  # 不为  # 人会  # 该怎么  # 换个 


相关文章: 如何用y主机助手快速搭建网站?  ,在苏州找工作,上哪个网站比较好?  昆明高端网站制作公司,昆明公租房申请网上登录入口?  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  济南企业网站制作公司,济南社保单位网上缴费步骤?  建站主机默认首页配置指南:核心功能与访问路径优化  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  建站主机选购指南:核心配置优化与品牌推荐方案  天津个人网站制作公司,天津网约车驾驶员从业资格证官网?  ,怎么在广州志愿者网站注册?  如何在Golang中处理模块冲突_解决依赖版本不兼容问题  建站之星体验版:智能建站系统+响应式设计,多端适配快速建站  如何在云服务器上快速搭建个人网站?  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  怎么用手机制作网站链接,dw怎么把手机适应页面变成网页?  香港服务器网站推广:SEO优化与外贸独立站搭建策略  用v-html解决Vue.js渲染中html标签不被解析的问题  建站VPS配置与SEO优化指南:关键词排名提升策略  企业微网站怎么做,公司网站和公众号有什么区别?  如何用VPS主机快速搭建个人网站?  建站之星如何实现PC+手机+微信网站五合一建站?  c# Task.Yield 的作用是什么 它和Task.Delay(1)有区别吗  网站制作知乎推荐,想做自己的网站用什么工具比较好?  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  如何通过免费商城建站系统源码自定义网站主题与功能?  Bpmn 2.0的XML文件怎么画流程图  宝塔建站教程:一键部署配置流程与SEO优化实战指南  清单制作人网站有哪些,近日“兴风作浪的姑奶奶”引起很多人的关注这是什么事情?  Python多线程使用规范_线程安全解析【教程】  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  历史网站制作软件,华为如何找回被删除的网站?  建站之星与建站宝盒如何选择最佳方案?  百度网页制作网站有哪些,谁能告诉我百度网站是怎么联系?  义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?  建站VPS选购需注意哪些关键参数?  深圳网站制作平台,深圳市做网站好的公司有哪些?  如何快速上传建站程序避免常见错误?  沈阳个人网站制作公司,哪个网站能考到沈阳事业编招聘的信息?  c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】  如何安全更换建站之星模板并保留数据?  如何处理“XML格式不正确”错误 常见XML well-formed问题解决方法  php能控制zigbee模块吗_php通过串口与cc2530 zigbee通信【介绍】  香港服务器如何优化才能显著提升网站加载速度?  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  如何用已有域名快速搭建网站?  哈尔滨网站建设策划,哈尔滨电工证查询网站?  建站上市公司网站建设方案与SEO优化服务定制指南  建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南  正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。