废话少说,直接进入正题。
最大的坑是:

Process: com.android.camera2, PID: 20419                                     java.lang.SecurityException: Permission Denial: opening provider android.support.v4.content.FileProvider from ProcessRecord{4238a238 20419:com.android.camera2/u0a30} (pid=20419, uid=10030) that is not exported from uid 10143

其实字面意思上已经很好理解了,缺少权限,注意:5.0以上的手机是不会报这个错的
然后我就在网上搜,应该会有这方面的资料吧,搜了好长时间,国外的网站都翻了,除了exported和grantUriPermissions在manifest上设置外,竟然没有别的资料。
第二天,我觉得可能是我搜得不对,终于我搜到了一个靠谱的

intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);

我想,这回肯定没问题了,但是结果总是出乎你的意料之外,竟然还是报错~~~~
这可咋整,接着搜,点开一篇文章,没报什么希望,是介绍7.0的拍照调用fileprovider的,嗯?有不一样的设置

 List<ResolveInfo> resInfoList= getPackageManager().queryIntentActivities(takePictureIntent, PackageManager.MATCH_DEFAULT_ONLY);for (ResolveInfo resolveInfo : resInfoList) {String packageName = resolveInfo.activityInfo.packageName;grantUriPermission(packageName, photoURI,Intent.FLAG_GRANT_WRITE_URI_PERMISSION);}

试试吧,一试,成了,太激动了,这是一款4.4.4的手机,没毛病~~~
还有一款4.2.2的手机,一试,这个还报错,想了想,这个list循环只加了write权限,估计是缺少read权限,一加,果然好使!
就此,这个深坑解决啦,希望别的网友也能看到这篇帖子
最后链接上给我思路的博客:
http://www.jianshu.com/p/a1eb3ad79ef6
感谢!
最后附上拍照源码:

private void take() {// 激活系统的照相机进行拍照String filePath = AppConfig.CIVIL_WORKER_PATH + AppConfig.CHECK_PHOTO;File outputFile = new File(filePath);if (!outputFile.getParentFile().exists()) {outputFile.getParentFile().mkdir();}Uri photoURI = FileProvider.getUriForFile(activity,getPackageName() + ".fileprovider", outputFile);//为拍摄的图片指定一个存储的路径Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);//设置权限List<ResolveInfo> resInfoList = getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);for (ResolveInfo resolveInfo : resInfoList) {String packageName = resolveInfo.activityInfo.packageName;grantUriPermission(packageName, photoURI,                   Intent.FLAG_GRANT_READ_URI_PERMISSION|Intent.FLAG_GRANT_WRITE_URI_PERMISSION);}intent.putExtra("camerasensortype", 1); // 调用后置摄像头intent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI);startActivityForResult(intent, REQUEST_TAKE_PICTURE);}
 private static final int REQUEST_TAKE_PICTURE = 100;//照相@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if (resultCode == RESULT_OK && requestCode == REQUEST_TAKE_PICTURE) {String filePath = AppConfig.CIVIL_WORKER_PATH + AppConfig.CHECK_PHOTO;Bitmap bitmap = BitmapUtils.getimage(filePath);}}

OVER

android 拍照使用fileprovider遇到的坑相关推荐

  1. Android 拍照和图库功能(适配Android 6.0和7.0系统和华为机型问题)

    众所周知,调用相机拍照和图库中获取图片的功能,基本上是每个程序App必备的. 实现适配Android每个版本,国内手机,要处理的问题却也不少.例如:Android6.0权限问题,Android7.0 ...

  2. android - 拍照

    android 拍照 <uses-permission android:name="android.permission.CAMERA"/><uses-permi ...

  3. Android拍照相册裁剪封装

    Android拍照相册裁剪封装 先列出来需要解决问题 展示效果 注意事项 代码 参考资料 最近用到从相机/相册选择图片的功能,这个功能虽然不复杂,网上的代码也一大堆,但是考虑到可能以后别的地方也会用到 ...

  4. Android 拍照以及相册中选择(适配高版本)————上传多张照片之压缩处理、在线预览可伸缩放大(二)

    ______ Introduction ______ 前言 上一篇文章刚给大家总结完,关于上传头像的功能.此文章所述 主要是关于上传头像的具体流程以及如何对照片做裁剪处理,回调给控件显示:当然重中之重 ...

  5. Android拍照遇到的所有问题

    先说说流程:拍照后将图片转为Bitmap显示在页面上.先吐槽一下,以前拍照几行代码就搞定了,现在拍照是真的麻烦,要写一大堆代码! 1.解决android6.0动态权限问题 2.解决android7.0 ...

  6. Android 拍照功能详解

    Android拍照功能相信都不陌生.这篇文章总结下Android拍照功能的具体知识. 分两种场景: 场景一,拍照然后显示照片在页面: 场景二,拍照然后将照片以文件方式存储. 简单的拍照功能 原理:调用 ...

  7. Android拍照及从相册选择图片传详解(终极版)

    Android 拍照及从相册选择图片传详解 先上图 新知识点速览 URI(统一资源标识符)是标识逻辑或物理资源的字符序列,与URL类似,也是一串字符.通过使用位置,名称或两者来标识Internet上的 ...

  8. 使用Android拍照程序报setParameters failed错误

    使用Android拍照程序报setParameters failed错误 这个产生的原因是由于你设置的Preview的size和手机本身支持的size不匹配造成的. 可以通过camera.getPar ...

  9. [Android] 拍照、截图、保存并显示在ImageView控件中

    最近在做Android的项目,其中部分涉及到图像处理的内容.这里先讲述如何调用Camera应用程序进行拍照,并截图和保存显示在ImageView控件中以及遇到的困难和解决方法.     PS:作者购买 ...

最新文章

  1. php tp5路由教程,附件八 TP5路由设置源码
  2. cad把图形切成两部分_0基础7天速成CAD!设计大师私藏的300套练习图,学完就可以找工作...
  3. grep / egrep
  4. 以人致胜 SAP开启HR云端变革之旅
  5. 如何在C语言里调用opencv C++函数?
  6. 2008搭建php运行环镜,Win2008 PHP 配置环境怎么搭建?win2008 php运行环境搭建图文教程。...
  7. Kafka配置消息保存时间的方法
  8. 【vue】跟着老马学习vue-数据双向绑定
  9. CesiumJS 2022^ 原理[2] 渲染架构之三维物体 - 创建并执行指令
  10. Spring学习笔记--导航
  11. 决策树之分类树快速理解
  12. mysql pre_commit_Git — Pre-commit钩子的使用
  13. matplotlib 柱状图 分组_Python数据分析与可视化之matplotlib可视化(三)
  14. 某商场G区火灾自动报警与控制系统设计
  15. 【CS229机器学习】作业 Problem Set #1 有监督学习
  16. pyecharts 字体大小调整
  17. 南开大学2019年数学分析考研试题
  18. java 软键盘_【学习笔记】【java appium】软键盘搜索、回车按钮
  19. Docker_notes_practice
  20. 常用1寸、2寸照片标准尺寸

热门文章

  1. 四款5000元左右亲民热销超级本推荐
  2. 编码转换以及乱码恢复
  3. 如何利用百度图片搜索进行引流?原理是怎样的?
  4. 第二周总结(系统挂载重要目录、文件优化硬件软件安装)
  5. python:实现十进制转二进制算法(附完整源码)
  6. AP微积分课程难吗?备考建议来啦
  7. (附源码)计算机毕业设计SSM疫情医疗物资管理系统
  8. 【无人机】采用最基本的自由空间路损模型并且不考虑小尺度衰落(多径多普勒)固定翼无人机轨迹规划(Matlab代码实现)
  9. 京东数据化运营(五)— 行业分析篇
  10. fsolve matlab 含参_fsolve 解有参数的多个方程