Android 7.0调用相机崩溃详解及解决办法

作者:晓果博客 时间:2023-08-08 21:39:42 

Android 7.0调用相机崩溃解决办法

 错误提示:


android.os.FileUriExposedException: file:///storage/emulated/0/DCIM/IMG_1041503431.jpg exposed beyond app through ClipData.Item.getUri()

Android 7.0调用相机崩溃详解及解决办法

处理方式


/**
* Open camera
*/
private void showCameraAction() {
if (ContextCompat.checkSelfPermission(getContext(), Manifest.permission.WRITE_EXTERNAL_STORAGE)
  != PackageManager.PERMISSION_GRANTED) {
 requestPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE,
   getString(R.string.mis_permission_rationale_write_storage),
   REQUEST_STORAGE_WRITE_ACCESS_PERMISSION);
} else {
 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
 if (intent.resolveActivity(getActivity().getPackageManager()) != null) {
  try {
   mTmpFile = FileUtils.createTmpFile(getActivity());
  } catch (IOException e) {
   e.printStackTrace();
  }
  if (mTmpFile != null && mTmpFile.exists()) {
    /*获取当前系统的android版本号*/
   int currentapiVersion = android.os.Build.VERSION.SDK_INT;
   Log.e("currentapiVersion","currentapiVersion====>"+currentapiVersion);
   if (currentapiVersion<24){
    intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(mTmpFile));
    startActivityForResult(intent, REQUEST_CAMERA);
   }else {
    ContentValues contentValues = new ContentValues(1);
    contentValues.put(MediaStore.Images.Media.DATA, mTmpFile.getAbsolutePath());
    Uri uri = getContext().getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,contentValues);
    intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
    startActivityForResult(intent, REQUEST_CAMERA);
   }
  } else {
   Toast.makeText(getActivity(), R.string.mis_error_image_not_exist, Toast.LENGTH_SHORT).show();
  }
 } else {
  Toast.makeText(getActivity(), R.string.mis_msg_no_camera, Toast.LENGTH_SHORT).show();
 }
}
}

 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

来源:http://blog.csdn.net/huangxiaoguo1/article/details/52830015

标签:Android,相机崩溃
0
投稿

猜你喜欢

  • Kotlin可见性修饰符详解

    2023-02-28 22:36:18
  • Spring框架的环境搭建和测试实现

    2023-10-27 17:57:57
  • Android编程实现google消息通知功能示例

    2023-02-02 20:00:27
  • Android Service启动过程完整分析

    2021-11-25 11:02:44
  • c#正反序列化XML文件示例(xml序列化)

    2023-01-06 02:49:57
  • Java 字符串转float运算 float转字符串的方法

    2022-04-09 10:09:06
  • JSON序列化Redis读取出错问题解决方案

    2022-10-13 18:57:50
  • Android自定义覆盖层控件 悬浮窗控件

    2021-10-21 01:14:40
  • Java编写日历表的3种方式

    2023-02-16 00:50:31
  • Android设置全屏代码分享

    2022-03-25 10:42:30
  • Java使用pulsar-flink-connector读取pulsar catalog元数据代码剖析

    2023-11-05 17:25:41
  • 解决Map集合使用get方法返回null抛出空指针异常问题

    2023-11-25 00:14:00
  • Android表格自定义控件使用详解

    2023-12-23 23:35:36
  • C#实现获取Excel中图片所在坐标位置

    2021-10-14 23:36:18
  • 揭秘双十一手机淘宝图标如何被动态更换

    2022-06-05 20:14:04
  • IDEA的Swing可视化插件JFormDesigner详解

    2023-09-23 08:02:54
  • Android实现二级列表购物车功能

    2022-08-28 09:26:28
  • maven无法依赖spring-cloud-stater-zipkin的解决方案

    2023-09-12 01:54:51
  • spring系列笔记之常用注解

    2022-02-21 16:15:04
  • Android自定义图片选择器简单版

    2022-05-11 02:38:59
  • asp之家 软件编程 m.aspxhome.com