在尝试从相机拍照并将其保存在应用程序的缓存文件夹中时,我没有得到任何可见的结果。应用程序不会崩溃,但是在 LogCat 上,一旦我尝试将 ImageView src 字段设置为刚刚获取的文件的 URI,就会收到此消息:
09-17 14:03:32.200: I/System.out(5104): Not a DRM File, opening notmally 09-17 14:03:32.200: I/System.out(5104): buffer returned 09-17 14:03:32.205: D/skia(5104): --- SkImageDecoder::Factory returned null 09-17 14:03:32.205: I/System.out(5104): resolveUri failed on bad bitmap uri: /data/data/com.example.me/cache/prefix1708798995.jpg
代码其实很简单:
File tempFile;
try {
tempFile = File.createTempFile("prefix", ".jpg");
} catch (IOException e) {
e.printStackTrace();
AppUtil.showErrorToUser(getApplicationContext(), getResources().getString(R.string.ERROR_upload));
return;
}
mCameraImage = tempFile.getAbsolutePath();
Uri uri = Uri.fromFile(tempFile);
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
startActivityForResult(intent, CAMERA_REQUEST_CODE);
并且,在onActivityResult()
:
mIvAttach.setImageURI(Uri.parse(mBodyLocalUri));
我也很失望,我无法验证是否真的拍摄了照片,因为我无法访问/data/data/myapp
文件夹(我的 GS3 没有 root,我仍然关心我的保修),因此我不知道在哪里问题的根源是。