获取相机拍摄的照片文件路径

时间:2016-02-01 01:46:42

标签: android android-camera

我想获得仅由设备相机拍摄的照片。

也许,文件路径名称有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设备是如此之多。

1 个答案:

答案 0 :(得分:1)

如果您想获取设备上的默认图片存储目录,请尝试:

Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);