相机捕获活动MediaStore.ACTION_IMAGE_CAPTURE不会写入Uri

时间:2013-02-28 06:31:53

标签: android android-intent android-camera

这很奇怪。几周前,以下代码正在运行,现在不是:

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的追踪并将其设置为null。在onActivityResult中打印路径时,我得到一个NPE。我该如何解决这个问题?我在Galaxy Nexus上使用Android 4.1.2 API 16。

1 个答案:

答案 0 :(得分:0)

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

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

当我锁定意图的屏幕方向(纵向,但无关紧要)时,问题就消失了。可能想尝试并报告是否有所作为。

这也可能是相关的: Camera activity causing uri to go to null when screen orientation changes