3

私はこれを機能させようとし、オンラインでさまざまなリソースを見てきました (私が行ったすべてのコメントからわかるように)。assets または 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);
4

3 に答える 3

7

from link & androidのres/rawフォルダに保存されている.mp3ファイルのURIを取得

リソース 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");

于 2012-06-21T19:06:27.300 に答える
1

非常に役立つ投稿。

代替手段は次のとおりです。可能であれば、Uri の代わりに FileDescriptor を使用します。

例:(私の場合、生のオーディオファイルです)

FileDescriptor audioFileDescriptor = this.resources.openRawResourceFd(R.raw.example_audio_file).getFileDescriptor();

this.musicPlayer.setDataSource(backgroundMusicFileDescriptor);
于 2015-01-20T04:27:23.787 に答える