Android: コンテンツ URI からファイル URI を取得しますか? 質問する

Android: コンテンツ URI からファイル URI を取得しますか? 質問する

私のアプリでは、ユーザーがオーディオ ファイルを選択し、アプリがそれを処理します。問題は、アプリがオーディオ ファイルに対して希望どおりに動作するために、URI がファイル形式になっている必要があることです。Android のネイティブ ミュージック プレーヤーを使用してアプリ内でオーディオ ファイルを参照する場合、URI はコンテンツ URI であり、次のようになります。

content://media/external/audio/media/710

ただし、人気のファイル マネージャー アプリケーション Astro を使用すると、次のようになります。

file:///sdcard/media/audio/ringtones/GetupGetOut.mp3

後者の方が私にとってははるかに使いやすいのですが、もちろん、コレクションの参照に使用するプログラムに関係なく、ユーザーが選択したオーディオ ファイルでアプリが機能するようにしたいのです。そこで質問なのですが、content://スタイル URI をfile://URI に変換する方法はあるのでしょうか。そうでない場合、この問題を解決するためにどのような方法をお勧めしますか。参考までに、セレクターを呼び出すコードを以下に示します。

Intent ringIntent = new Intent();
ringIntent.setType("audio/mp3");
ringIntent.setAction(Intent.ACTION_GET_CONTENT);
ringIntent.addCategory(Intent.CATEGORY_OPENABLE);
startActivityForResult(Intent.createChooser(ringIntent, "Select Ringtone"), SELECT_RINGTONE);

コンテンツ URI に対して次の操作を実行します。

m_ringerPath = m_ringtoneUri.getPath();
File file = new File(m_ringerPath);

次に、そのファイルに対して FileInputStream の処理を​​いくつか実行します。

ベストアンサー1

URI からgetContentResolver().openInputStream(uri)を取得するために使用します。InputStream

http://developer.android.com/reference/android/content/ContentResolver.html#openInputStream(android.net.Uri)

おすすめ記事