折腾了一两个小时才搞出来,早知道以前不删自己写的demo了。。。明明做过的又忘了,中老年人易健忘啊
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); imageUri = Uri.fromFile(new File(Environment.getExternalStorageDirectory(), "aa.png")); intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri); startActivityForResult(intent,CAMERA_REQUEST);
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK) { photo = BitmapFactory.decodeFile(imageUri.getPath()); uploadImage.setImageBitmap(photo); } }
直接这样在7.0以上的版本会报
android.os.FileUriExposedException: file:///storage/emulated/0/aa.png exposed beyond app through ClipData.Item.getUri()
两种解决方法都在
http://blog.csdn.net/xiaoyu940601/article/details/54406725
我是用的第二种 毕竟省事
public class MyApp extends Application { @Override public void onCreate() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder(); StrictMode.setVmPolicy(builder.build()); } } }
就酱~~