这很奇怪。以下代码几周前还可以工作,但现在不能工作了:
private void onClick()
{
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
mOriginalUri = Uri.fromFile(new File(Environment.getExternalStorageDirectory(),"original" + String.valueOf(System.currentTimeMillis()) + ".jpg"));
Log.d("path", mOriginalUri.getPath());
intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, mOriginalUri);
intent.putExtra("return-data", true);
startActivityForResult(intent, CAMERA_REQUEST);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
switch( requestCode )
{
case CAMERA_REQUEST:
if(resultCode == MainActivity.RESULT_OK)
Log.d("path", mOriginalUri.getPath());
break;
}
}不知何故,相机捕获活动丢失了对我的Uri的跟踪,并将其设置为空。在onActivityResult中打印路径时,出现NPE。我该如何解决这个问题?我在Galaxy Nexus上使用的是Android 4.1.2 API 16。
发布于 2013-04-09 11:17:51
我遇到了类似的相机问题,有时会返回图像,有时会返回null。我的设置与将图像写入文件的设置相同。
我从onCreate(),而不是onClick()方法开始相机意图。
当我锁定屏幕方向的意图(肖像,但这并不重要),问题就消失了。可能会想尝试一下,如果这有什么不同的话就会报告。
这也可能是相关的:Camera activity causing uri to go to null when screen orientation changes
https://stackoverflow.com/questions/15128969
复制相似问题