在我的应用程序中,我使用以下代码访问相机:
camIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(camIntent, 0);
在我的 onActivityForResult 中:
AQuery aq = new AQuery(this);
Uri selectedImage = data.getData();
ivSecondPic.setVisibility(View.VISIBLE);
strMainPic = getRealPathFromURI(selectedImage);
File f = new File(strMainPic);
这是我得到错误的地方:
public String getRealPathFromURI(Uri contentUri) {
String res = null;
String[] proj = { MediaStore.Images.Media.DATA };
//This line (cursor)
Cursor cursor = context.getContentResolver().query(contentUri, proj, null, null, null);
if(cursor.moveToFirst()){;
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
res = cursor.getString(column_index);
}
cursor.close();
return res;
}
无论如何,这适用于官方软件。问题是当我尝试在安装了 stock rom 的设备上使用相机时,我得到一个NullPointerException
. 有谁知道如何解决这个问题?先感谢您。
编辑我发现selectedImage
是null
. 我如何让它拥有图像uri?我有什么明显的遗漏吗?显然data.getData()
是什么都不返回。那么我该如何获得Uri
呢?