- 这块代码是同事写的,他的手机是5.1,然后到我的7.0的手机直接毙了…..
上网查了下,这里吧人家好的博客组合到一起的,有什么错误的地方,希望大佬们指点下
如果你是手机是6.0以下的话,张哥(stromzhang)的这篇文章就够了!
- 当然现在6.0以上都普及好久了, 直接代码
- activity的改动 , 之前的调用相机,以及图片的压缩还是用上面 张哥博客中的代码,只需要进行下面改动
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
Uri uri;
// 判断是否是AndroidN以及更高的版本 ,
// 注意一下用自己的包名那段字符串要和manifest里对应上
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N ){
intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
uri = FileProvider.getUriForFile(this , "com.laogao.yourapp.fileprovider" , Utils.getTempImage(this));
}else {
uri = Uri.fromFile(Utils.getTempImage(this));
}
intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
startActivityForResult(intent2, CAMERANF_REQUEST);
- 上面的代码,就是6.0以上的 Uri 形式变了
下面的代码就需要进行 6.0 以上的配置,这里是 重点 , 改动有2点
- 1.需要在自己的manifest中配置
- 2.需要创建一个xml文件
然后呢 ,代码就不上了!这篇博客已经够详细了– > 这是中文的详细说明
科学上网地址 这是官方的文档,非常详细的!
我用三星手机拍照还是有问题,不过别的手机暂时还没有发现问题