0

这很奇怪。以下代码几周前可以工作,现在不行了:

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。

4

1 回答 1

0

我遇到了类似的相机问题,有时会返回图像,有时会返回 null。我有将图像写入文件的相同设置。

我从 onCreate() 而不是 onClick() 方法开始了相机意图。

当我锁定意图的屏幕方向(纵向,但这没关系)时,问题就消失了。可能想尝试一下并报告是否有影响。

这也可能是相关的: 当屏幕方向改变时,导致 uri 变为空的相机活动

于 2013-04-09T03:17:50.807 回答