android 手机拍照返回 Intent==null 以及intent.getData==null

时间:2022-11-08 06:20:16

手机拍照第一种情况;
private void takePicture(){

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
SimpleDateFormat timeStampFormat = new SimpleDateFormat("yyyy_MM_dd_HH_mm_ss");
String filename = timeStampFormat.format(new Date());
ContentValues values = new ContentValues();
values.put(Media.TITLE, filename);
 photoUri =getActivity().getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
intent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);
startActivityForResult(intent, TAKE_PHOTO);

}

public void onActivityResult(int requestCode, int resultCode, Intent data) {

data 未空,注意data 是指Intent

原因:即指定了目标uri   如果指定了目标uri,data就没有数据,如果没有指定uri,则data就返回有数据!

可根据 photoUri全局变量获取URI;

}

手机拍照第二种情况;
private void takePicture(){

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, TAKE_PHOTO);

}

public void onActivityResult(int requestCode, int resultCode, Intent data) {

data 非空,注意data 是指Intent

Uri uri=Intent.getData();

发现依旧返回null;由于测试机无SD卡 ,原因不详,请知道的指教

解决方法:if(data.hasExtra("data")){

Bitmap bitMap = data.getParcelableExtra("data");得到图片

}

 

}