我想获得仅由设备相机拍摄的照片。
也许,文件路径名称有DCIM或其他东西。
这是代码,这可以吗?目标API位于15~21API之间。
/**
* @param context
* @returnArrayList with images Path
*/
public static ArrayList<String> getAllShownImagesPath(Context context) {
Uri uri;
Cursor cursor;
int column_index_data, column_index_folder_name;
ArrayList<String> listOfAllImages = new ArrayList<String>();
String absolutePathOfImage = null;
uri = android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
final String DCIMPath = android.os.Environment.DIRECTORY_DCIM;
Log.d(TAG, "DCIMPath #"+DCIMPath);
String[] projection = { MediaStore.MediaColumns.DATA, MediaStore.Images.Media.BUCKET_DISPLAY_NAME };
cursor = context.getContentResolver().query(uri, projection, null, null, null);
column_index_data = cursor.getColumnIndexOrThrow(MediaStore.MediaColumns.DATA);
column_index_folder_name = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.BUCKET_DISPLAY_NAME);
while (cursor.moveToNext()) {
absolutePathOfImage = cursor.getString(column_index_data);
if(absolutePathOfImage.contains(DCIMPath))
listOfAllImages.add(absolutePathOfImage);
}
String filepath = Environment.getExternalStorageDirectory().toString();
Log.d(TAG, "filepath #" + filepath);
return listOfAllImages;
}
我只测试它工作的一台设备。但Android设备是如此之多。
答案 0 :(得分:1)
如果您想获取设备上的默认图片存储目录,请尝试:
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);