从 asset 或 res/raw 中的文件获取 Uri

2024-04-26

我试图让它发挥作用,并且在网上查看了许多不同的资源(正如您从我所做的所有评论中看到的那样)。我想访问位于 asset 或 res 中的 .pdf 文件;哪一个并不重要,所以最简单的方法就可以了。

我有下面的方法,它将获取实际文件,并使用参数中的 Uri 调用另一个方法(在下面的第一个方法下)。

非常感谢您的帮助,我将随时回答问题或添加更多内容。

private void showDocument(File file)
{
    //////////// ORIGINAL ////////////////////
    //showDocument(Uri.fromFile(file));
    //////////////////////////////////////////

    // try 1
    //File file = new File("file:///android_asset/RELATIVEPATH");

    // try 2
    //Resources resources = this.getResources();

    // try 4
    String PLACEHOLDER= "file:///android_asset/example.pdf";
    File f = new File(PLACEHOLDER);

    //File f = new File("android.resource://res/raw/slides1/example.pdf");

    //getResources().openRawResource(R.raw.example);

    // try 3
    //Resources resources = this.getResources();
    //showDocument(Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://" + resources.getResourcePackageName(R.raw.example) + '/' + resources.getResourceTypeName(R.raw.example) + '/' + resources.getResourceEntryName(R.raw.example)));

    showDocument(Uri.fromFile(f));
}

protected abstract void showDocument(Uri uri);

from link http://androidbook.blogspot.in/2009/08/referring-to-android-resources-using.html & 获取android中res/raw文件夹中存储的.mp3文件的URI https://stackoverflow.com/questions/7976141/get-uri-of-mp3-file-stored-in-res-raw-folder-in-android

记录资源id,格式为:

"android.resource://[package]/[res id]"

Uri路径 = Uri.parse("android.resource://com.androidbook.samplevideo/" + R.raw.myvideo);

或者,使用资源子目录(类型)和资源名称(不带扩展名的文件名),格式为:

“android.resource://[包]/[资源类型]/[资源名称]”

Uri路径 = Uri.parse("android.resource://com.androidbook.samplevideo/raw/myvideo");

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 asset 或 res/raw 中的文件获取 Uri 的相关文章

随机推荐