当前位置: 移动技术网 > IT编程>移动开发>Android > Android 7.0调用相机崩溃详解及解决办法

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

2019年07月24日  | 移动技术网IT编程  | 我要评论

概率密度函数,王亦典,熬婚

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

 错误提示:

android.os.fileuriexposedexception: file:///storage/emulated/0/dcim/img_1041503431.jpg exposed beyond app through clipdata.item.geturi()


处理方式

/**
 * 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();
  }
 }
}

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

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网