【发布时间】:2013-02-07 05:01:11
【问题描述】:
我正在尝试将我用相机拍摄的照片的路径作为字符串。当我尝试用我的代码拍照时,字符串为空。当我关闭我的应用程序时,打开相机应用程序并在那里拍照,然后重新打开我的应用程序并使用我的代码,然后我会得到我用相机应用程序拍摄的最后一张照片的字符串。我的问题是为什么我的 Camera Intent 不起作用,为什么当我使用相机应用程序时它起作用?
这是我的代码:
public void onClick(View arg0) {
switch (arg0.getId()) {
case R.id.btnImageCapture:
Intent openCamera = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(openCamera, OPEN_CAMERA);
break;
}
}
private String getLastImagePath() {
final String[] imageColumns = { MediaStore.Images.Media._ID,
MediaStore.Images.Media.DATA };
final String imageOrderBy = MediaStore.Images.Media._ID + " DESC";
Cursor imageCursor = managedQuery(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, imageColumns,
null, null, imageOrderBy);
if (imageCursor.moveToFirst()) {
String fullPath = imageCursor.getString(imageCursor
.getColumnIndex(MediaStore.Images.Media.DATA));
imageCursor.close();
return fullPath;
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch(requestCode){
case OPEN_CAMERA:
if (resultCode == RESULT_OK && data != null) {
String picturePath = getLastImagePath();
break;
}
}
}
【问题讨论】:
-
为什么不用onActivityResult中给你的图片的Uri呢?数据.getData();
-
这是因为我需要文件路径。 ;)
-
用 Uri 试试我的答案。
-
我不确定 Uri 是否已填充。怎么查?