繁体   English   中英

如何获取android中媒体文件的路径

[英]How to get path of media files in android

我想要通过任何应用程序的共享意图共享的文件路径。 我确实使用代码ShareCompat.IntentReader.from(this).getStream().getPath(); .

但是我没有得到图像、视频和音频文件的路径我得到content://media/external/video/media/40666 ,如何获得这种类型文件的真实路径?

如果你想要的只是路径,你可以使用下面的代码

public String getRealPathFromURI(Context context, Uri contentUri) {
    Cursor cursor = getContentResolver().query(contentUri, null, null, null, null);
    cursor.moveToFirst();
    String document_id = cursor.getString(0);
    document_id = document_id.substring(document_id.lastIndexOf(":")+1);
    cursor.close();

    cursor = getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,null
            , MediaStore.Images.Media._ID + " = ? ", new String[]{document_id}, null);
    cursor.moveToFirst();
    String path = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DATA));
    cursor.close();

    return path;
}

它基本上使用他的 ContentResolver 来获取文件的数据。

您可以更改查询参数以获得您想要的。

或者你可以使用

getContentResolver().openInputStream(uri)

如果你想要整个文件

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM