Android 7.0调用相机崩溃怎么办?Android 7.0调用相机崩溃解决教程

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

错误提示:

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

 

处理方式

/**

 * Open camera

 */

privatevoidshowCameraAction() {

 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 =newIntent(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版本号*/

    intcurrentapiVersion = 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 =newContentValues(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

时间: 2024-09-08 18:40:47

Android 7.0调用相机崩溃怎么办?Android 7.0调用相机崩溃解决教程的相关文章

Android权限管理PermissionsDispatcher2.3.2使用+原生6.0权限使用

PermissionsDispatcher2.3.2使用 Android6.0权限官网https://developer.android.com/about/versions/marshmallow/android-6.0-changes.html?hl=zh-cn系统权限:https://developer.android.com/training/permissions/index.html?hl=zh-cn权限的最佳做法:https://developer.android.com/trai

android 当在主线程里开启一个新线程 程序就崩溃

问题描述 android 当在主线程里开启一个新线程 程序就崩溃 我要实现的功能是检索SDcard里的所有txt文件我尝试过很多办法 1 不用线程 直接在主线程里检索文件 由于有循环且检索时间会超过5秒 导致黑屏然后提示未响应2 我建立一个线程让线程去检索文件当检索完毕后把检索到的文件传递给主类 主类再把检索到的文件显示在list上 但是当线程一启动程序就崩溃了3 最后我在主类里添加handler 当子线程检索完毕就sendmessage给主类 然后主类把子线程检索到的文件显示在list上但程序

《Android 3D游戏开发技术宝典——OpenGL ES 2.0》——1.5节Android应用程序运行的机制

1.5 Android应用程序运行的机制 Android 3D游戏开发技术宝典--OpenGL ES 2.0 上一节介绍了如何搭建Android开发环境.如何开发Hello Android应用程序以及Android应用程序的调试,接下来在本节中将简要地介绍Android应用程序的运行机制. 1.5.1 应用程序的系统架构 Android平台由应用程序.应用程序框架.Android运行时.系统库以及底层Linux内核构成,详细结构如图1-54所示. 说明 应用程序层里面包含的就是需要读者去发挥创意

《Android 3D游戏开发技术宝典——OpenGL ES 2.0》——2.1节游戏中的音效

2.1 游戏中的音效 Android 3D游戏开发技术宝典--OpenGL ES 2.0 一款好游戏,除了具备优质的画面和较高的可玩性之外,还应该有出色的音效.音效一般指的是游戏中发生特定行为或进行特定操作时播放的效果音乐或为了渲染整体气氛播放的背景音,如远处隆隆的炮声.怪物死亡的惨叫声.由远而近的脚步声等. 通过开发人员精心准备的声音特效,结合游戏的场景,可以渲染出一种紧张刺激的氛围,使玩家产生身临其境的感觉.这就像电影中的声音特效一样,假如没有了合适的音效,那么游戏和电影一样,真实感会大打折

Android BLE与终端通信(五)——Google API BLE4.0低功耗蓝牙文档解读之案例初探

Android BLE与终端通信(五)--Google API BLE4.0低功耗蓝牙文档解读之案例初探 算下来很久没有写BLE的博文了,上家的技术都快忘记了,所以赶紧读了一遍Google的API顺便写下这篇博客心得 Google API:http://developer.android.com/guide/topics/connectivity/bluetooth-le.html#terms 其实大家要学习Android的技术,Google的API就是最详细的指导书了,而且通俗易懂,就算看不懂

《Android 3D游戏开发技术宝典——OpenGL ES 2.0》——2.7节蓝牙通信

2.7 蓝牙通信 Android 3D游戏开发技术宝典--OpenGL ES 2.0 随着硬件设备价格的不断降低,大部分智能手机上都已配备了蓝牙网络模块,Android设备也是如此.如果能为一些小型的休闲娱乐游戏增加蓝牙联网对战的功能,将会大大增加游戏的可玩性.本节将向读者详细介绍如何在Android平台下开发具有蓝牙互联功能的应用程序. 2.7.1 蓝牙通信的基本知识 蓝牙是一种支持设备短距离通信(一般是10m以内)的无线技术,其数据传输时不仅不需要连线,而且传输速率也比传统手持设备的红外模式

Android Camera开发系列(上)——Camera的基本调用与实现拍照功能以及获取拍照图片加载大图片

Android Camera开发系列(上)--Camera的基本调用与实现拍照功能以及获取拍照图片加载大图片 最近也是在搞个破相机,兼容性那叫一个不忍直视啊,于是自己翻阅了一些基本的资料,自己实现了一个相机,虽然相机这东西,兼容性不敢恭维,但是用到的地方确实很多,所以今天,我们就一起来学习一下吧 参照Google API:http://developer.android.com/guide/topics/media/camera.html 一.Camera的启动方式 1.调用系统方式 2.自定义

图片-android 请问这种系统指令是什么指令,如何调用它,和接收返回结果

问题描述 android 请问这种系统指令是什么指令,如何调用它,和接收返回结果 这张图是领导提供的指令表,说这些功能安卓系统已经实现了,只需要通过程序来调用这些指令,来实现检测功能,网上查了很久,也没查出头绪,我是android新手,有没有高手给点详细的解答 解决方案 http://blog.csdn.net/jumping_android/article/details/7397794 解决方案二: 参考android 发送AT命令 发送 void Send(String file, Str

《Android 3D游戏开发技术宝典——OpenGL ES 2.0》——1.2节Android平台的特点及未来的趋势

1.2 Android平台的特点及未来的趋势 Android 3D游戏开发技术宝典--OpenGL ES 2.0 Android平台基于Linux,其不仅继承了Linux的各种优良特性,同时由于"Android之父"Andy Rubin的先进理念,使得Android平台又增加了许多非常具有吸引力的新特性.这不仅给终端用户带来了非凡的体验,还大大减轻了Android应用开发者的工作量与难度. 1.2.1 全新理念带来的体验风暴 Android是具有开源性质的手机终端解决方案,开发人员可以

02_JNI中Java代码调用C代码,Android中使用log库打印日志,javah命令的使用,Android.mk文件的编写,交叉编译

 1  编写以下案例(下面的三个按钮都调用了底层的C语言): 项目案例的代码结构如下: 2 编写DataProvider的代码: package com.example.ndkpassdata;   public class DataProvider {         /**      * 计算x和y的加法  apktools      *      * @param x      * @param y      * @return      */     public native in