Android7.0 拍照 选择照片 权限 实现

参考链接:

http://blog.csdn.net/hu5080126/article/details/53738625

http://www.jianshu.com/p/ba57444a7e69

在Android7.0以后,当app使用file:// url 共享给其他app时, 会抛出异常。

因为在android 6.0 + 权限需要 在运行时候检查, 其他app 可能没有读写文件的权限, 所以google在7.0的时候加上了这个限制。

官方推荐使用 FileProvider 解决这个问题。 

1.打开相机拍照获取照片Uri,然后对图片进行压缩
2.打开相册获取选取的图片Uri,然后对图片进行压缩

打开相机和相册是不会触发任何权限问题的,如果你想获取相机或相册的图片中的Uri,即file://URI开头的Uri离开了相机或相册应用,就会触发7.0文件uri权限 FileUriExposedException会触发FileUriExposedException权限异常。

现在将代码贴下来:

private static final int NEED_CAMERA = 200;
private static final int RESULT_PICK = 201;

/**
 * 从TakePhotoPopWin获取的onClickListener
 * 点击PopuWindow上的照相或者从相册中选取图片 功能1
 */
private View.OnClickListener onClickListener = new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            //照相
            case R.id.btn_take_photo:
                //检测是否有相机和读写文件权限
                if (ContextCompat.checkSelfPermission(UIUtils.getContext(), Manifest.permission.CAMERA
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值