任何ony都可以给我指导如何找到我的Android设备从相机中存储其图像的目录;
在下面的代码片段中,我打算在启动相机应用程序之前获取文件列表。从相机应用程序返回时,获取同一目录中所有文件的列表并处理新添加的文件。
public void onBtnTakePhoto(final View view) {
existingfiles = UploadImageService.getFiles(<IMAGE_LOCATION>);
final Intent intent = new Intent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA);
startActivityForResult(intent, TAKE_PICTURE);
}
public void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case TAKE_PICTURE:
List<String> newFies = UploadImageService.getFiles(<IMAGE_LOCATION>);
newFies.removeAll(existingfiles);
for (String newFile : newFies) {
File file = new File(newFile);
addImage( Uri.fromFile(file), PictureSource.CAMERA);
}
break;
}
// regardless of which activity, check that files exist:
verifyFilesExist(images);
}
答案 0 :(得分:1)
据我了解,您实际上必须使用ACTION_IMAGE_CAPTURE
操作(而不是INTENT_ACTION_STILL_IMAGE_CAMERA)启动您的意图。然后,在onActivityResult
中,您必须从Intent获取数据:在那里您将找到对图像的引用。
查看给出的here示例。
但是当我看到你的答案时,你可能会发现这更有用:
String[] projection = {
MediaStore.Images.ImageColumns._ID, MediaStore.Images.ImageColumns.DATA
};
String selection = "";
String[] selectionArgs = null;
mImageExternalCursor = managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
projection, selection, selectionArgs, null);
mImageInternalCursor =
managedQuery(MediaStore.Images.Media.INTERNAL_CONTENT_URI, projection,
selection, selectionArgs, null);
然后
String filePath =
mImageExternalCursor.getString(mImageExternalCursor.getColumnIndexOrThrow(
MediaStore.Images.ImageColumns.DATA));
(因为你实际上并不想拍新照片)。