android4.4.4 拍照提示“无法获取摄像头数据,请检查是否已经打开摄像头权限”

由于项目需要,我们需要在启动摄像头前,预先判断一下我们的应用是否有摄像头权限(包括系统设置以及第三方安全软件是否禁止了摄像头打开权限)。
目前主要用到了一下两个方法结合起来判断。
1.通过系统的检查权限方法检查。
* @return if we have the camera permission
public boolean isCameraGranted() {
return ContextCompat.checkSelfPermission(mContext, CAMERA) == PERMISSION_GRANTED;
2.通过try-cache检查摄像头权限。
* 测试当前摄像头能否被使用
public static boolean isCameraCanUse() {
boolean canUse =
Camera mCamera =
mCamera = Camera.open(0);
mCamera.setDisplayOrientation(90);
} catch (Exception e) {
if (canUse) {
mCamera.release();
Timber.v("isCameraCanuse="+canUse);
return canU
通过结合以上两种方法,基本可以判断大部分机型的摄像头权限,但是仍然有以下地方需要改进:
1.使用try-catch方法需要打开摄像头,某些机型打开摄像头速度比较慢,造成界面容易出现卡顿情况,影响用户体验。此时,我们可以增加一些等待动画,优化用户体验。
2.部分手机采用此方法,无法正确返回摄像头权限的正常情况,try-catch中并没有报异常,后续需要继续改进。
《android 测试当前摄像头是否能被调用和权限设置》
《android按钮点击事件的频繁点击问题处理》
Android6.0动态获取摄像头权限(举一反三)
6.0系统可以动态的获取系统的权限API&22例如摄像头举一反三写一个动态获取摄像头的方法,其他的权限也可以稍微修改使用。在调用摄像头的地方进行判断,系统的版本Build.VERSION.SDK_IN...
android 之摄像头
既然要用到硬件肯定要牵涉到权限,
在Mainifest.xml中加入camera的权限:
调用camera最简单的办法是调用系统的功能,然后通过onActivityResult方...
Android 6.0以下摄像头权限
不可行权限判断API:context.checkCallingPermissioncontext.checkCallingOrSelfPermissioncontext.checkSelfPermis...
android---判断当前摄像头功能是否权限打开以及遇到java.lang.RuntimeException: Method called after release()解决办法
java.lang.RuntimeException: Method called after release() 在今天的BUG里面出现了这么一个错误,其实我这边的操作是,打开APP里面有个要打...
Android 6.0版本(Api 23)推出了很多新的特性, 大幅提升了用户体验, 同时也为程序员带来新的负担. 动态权限管理就是这样, 一方面让用户更加容易的控制自己的隐私, 一方面需要重新适配应...
:摄像头开发1. 控制摄像头在应用程序内拍摄照片
使用Intent拍摄照片为在应用程序中拍摄照片,最简单的方法就是使用 MediaStore.ACTION_IMAGE_CAPTURE...
来源:https://developer.android.com/training/articles/user-data-permissions.htmlAndroid的权限管理能保护设备上可用的敏感...
前言:相信有许多人和我一样,希望在不让用户知道的情况下,使用后台Server调用摄像头拍照,
在网上找了不少资料,大致都讲到不预览无法实现拍照,涉及到用户隐私,属于非法调用摄像头...怎么办!!!
目前几乎所有的APP在用户注册时都会有设置头像的需求,大致分为三种情况:
(1)通过获取本地相册的图片,经过裁剪后作为头像。
(2)通过启动手机相机,现拍图片然后裁剪作为头像。
(3)在APP中添加一...
没有更多推荐了,如题,既然是判断用户是否允许了摄像头权限,那么,咱们就忽略是Manifest配置的问题,因为这是开发者的事。
用户在使用APP时,如果首次进入用摄像头的地方,手机会提示是否允许该应用使用摄像头。有些用户小手一抖、或者压根就不想开启摄像头,咔擦,就给你关了,那好了。下回再进入该功能,就会出现APP一片黑,或者崩溃的情况。
作为开发者,正常思路是要提示用户,摄像头权限被你关了,赶紧去手动开启,不然,就别想用该功能了!那,咱们该怎么实现这个思路呢?
一、判断摄像头权限
Android API没提供判断摄像头权限是否被关闭的方法,但是,我们依然有办法,直接上代码:
public static booleanisCameraUseable() {
boolean canUse =
Camera mCamera =
mCamera = Camera.open();
// setParameters 是针对魅族MX5。MX5通过Camera.open()拿到的Camera对象不为null
Camera.Parameters mParameters = mCamera.getParameters();
mCamera.setParameters(mParameters);
}catch(Exception e) {
if(mCamera !=null) {
mCamera.release();
return canU
上面方法,放心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");
// 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 开启摄像头】 - CSDNAndroid怎么判断打开摄像头权限被禁用_百度知道
Android怎么判断打开摄像头权限被禁用
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
moonviolinx
职业教育类认证行家
moonviolinx
职业教育类行家
采纳数:257
获赞数:297
荣获北京智泽苑教育科技有限公司金牌教师称号。
一、安卓1.360手机卫士底部安全防护&隐私行为监控&软件隐私权限管理&要禁止的应用&取消勾选“拍照/摄像”2.LBE权限管理(主界面往下拖动)&拍照和录像&取消勾选要禁止的应用3.小米MIUI安全中心&授权管理&应用权限管理&隐私相关&取消勾选“拍照和录像”4.魅族Flyme设置&应用控制(四个小方格图标)&权限&要禁止的应用&取消勾选“摄像头(拍照/录像)”其他的第三方安全软件的设置方法也大同小异。二、苹果依次点击:设置&隐私&相机&关闭不需要用到相机的APP使用权限望采纳,谢谢。
为你推荐:
其他类似问题
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。输入关键字或相关内容进行搜索
详细问题描述
在安卓系统上禁止了获取摄像头的权限
调用plus.camera.getCamera().captureImage() 只提示没有权限,但是依然可以拍照成功!重现步骤
[步骤] 必现
[期望]禁止权限后plus.camera.getCamera()回调失败运行环境
[系统版本] ios
[浏览器版本]
[IDE版本] 安卓7.0
[mui版本] Mui v2.0.0附件
[代码片段]
[安装包]联系方式
要回复问题请先或

我要回帖

更多关于 android4.4.4 的文章

 

随机推荐