《android 测试当前摄像头是否能被调用和权限设置》
来源:互联网 发布:淘宝怎么判定假冒商品 编辑:程序博客网 时间:2024/06/05 00:30
一、开发背景
1.使用场景:(1)拍照;(2)扫一扫;(3)镜子;
2.不能用的情况:(1)没有给app摄像头权限;(2)手机电量不足;(3)摄像头损坏等;
我们在开发过程中,也容易出现这样的问题。在我们排除是代码问题的情况下,就是硬件问题。那么怎么检测是否有权限呢?
二、代码
/** * Created by laizhen on 2017/6/23. */public class CameraCanUseUtils { /** * 测试当前摄像头能否被使用 * * @return */ public static boolean isCameraCanUse() { boolean canUse = true; Camera mCamera = null; try { mCamera = Camera.open(0); mCamera.setDisplayOrientation(90); } catch (Exception e) { canUse = false; } if (canUse) { mCamera.release(); mCamera = null; } //Timber.v("isCameraCanuse="+canUse); return canUse; }}//使用
//调用相机权限判定if (CameraCanUseUtils.isCameraCanUse()) { Log.i(TAG, "相机");} else { ToastUtils.showTextToast(mContext, "没相机权限,请到应用程序权限管理开启权限"); //跳转至app设置 getAppDetailSettingIntent(); return;}//设置相机
/** * 相机权限设置 * 跳转至设置页面 */private void getAppDetailSettingIntent() { Intent localIntent = new Intent(); if (Build.VERSION.SDK_INT >= 9) { localIntent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS"); localIntent.setData(Uri.fromParts("package", mContext.getPackageName(), null)); } else if (Build.VERSION.SDK_INT <= 8) { localIntent.setAction(Intent.ACTION_VIEW); localIntent.setClassName("com.android.settings", "com.android.settings.InstalledAppDetails"); localIntent.putExtra("com.android.settings.ApplicationPkgName", mContext.getPackageName()); } startActivity(localIntent);}注意:发现三星手机是没有办法跳转至设置页面的,只能跳转至权限状态页面。
阅读全文
2 0
- 《android 测试当前摄像头是否能被调用和权限设置》
- 安卓检查APP是否被用户拒绝调用摄像头和麦克风权限
- Android 检查当前设备是否有摄像头
- 查看是否有摄像头和麦克风权限
- 摄像头和相册使用权限设置
- Android调用摄像头和相册
- Android调用摄像头和相册
- Android调用摄像头和拍照
- Android调用摄像头和相册
- Android 录音和摄像头权限适配
- 判断当前网络是否可用和调用系统设置wifi界面
- Android摄像头和短信的调用
- Android摄像头调用和裁剪压缩
- Android调用摄像头和本地相册
- Android学习之调用摄像头和相册
- Android学习-如何调用摄像头和相册
- android-摄像头-调用前置摄像头
- HTML5调用手机前置摄像头或后置摄像头拍照,canvas显示,经过Android测试
- Linux: 系统配置 crond 和 crontab(有图有代码有真相!!!)
- Python 可迭代元素拆包
- mysql
- shell中的${},##和%%的使用
- SpringBoot 在CentOS7部署
- 《android 测试当前摄像头是否能被调用和权限设置》
- 如何快速转载CSDN中的博客
- Hadoop--Hive安装指南
- MySQL连接
- arm-linux-gnueabihf-g++: error while loading shared libraries: libstdc++.so.6 no such file and ....
- 记笔记
- SSM框架下各个层的解释说明
- Ceres库和g2o库的使用
- MarkDown页内跳转实现