首先,我确实查看了有关此的其他问题,但他们说要做我正在做的事情。
我正在尝试启动相机拍摄这样的照片
PackageManager pm = getPackageManager();
if(pm.hasSystemFeature(PackageManager.FEATURE_CAMERA)){
Intent camera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File tempDir= new File(Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_PICTURES), "My App");
if(!tempDir.exists())
{
if(!tempDir.mkdir()){
Toast.makeText(this, "Please check SD card! Image shot is impossible!", Toast.LENGTH_SHORT).show();
}
}
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss",Locale.US).format(new Date());
File mediaFile = new File(tempDir.getPath() + File.separator +
"IMG_"+ timeStamp + ".jpg");
photoUri = Uri.fromFile(mediaFile);
camera.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);
startActivityForResult(camera, CAMERA_REQUEST);
}else{
Toast.makeText(this, "This device does not have a rear facing camera",Toast.LENGTH_SHORT).show();
}
但是当它回到onActivityResult
意图是 null 但结果是OK
. 我可以转到设备上的目录并查看它是否也已正确保存。
如果我取出camera.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);
并创建一个启动相机的基本意图,则返回时该意图不为空。
我想这photoUri
仍然是有效且安全的,因为图像在目录中,但是为什么当我提供 uri 时返回的意图是空的?