0

uri を介して個々のファイルのメディアストアを照会する方法を見つけようとしています。アプリで追加情報を提供したいURIのリストがあります。

例: content://media/external/audio/media/10

また

file:///sdcard/media/audio/sample.mp3

ここに私が取り組んでいるコードがあります。私は何のIDをすべきか分かりませんか?

        String[] cols = new String[] {
                MediaStore.Audio.Media._ID,
                MediaStore.Audio.Media.DATA,
                MediaStore.Audio.Media.TITLE
        };


        String where = MediaStore.Audio.Media._ID + "=" + id;

        String[] proj = { MediaStore.Audio.Media._ID, MediaStore.Audio.Media.DATA, MediaStore.Audio.Media.DISPLAY_NAME, MediaStore.Video.Media.SIZE, MediaStore.Audio.Media.ALBUM };

        Cursor musiccursor = managedQuery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, proj, null, cols, null);

前もって感謝します。

4

2 に答える 2

2

わかりました、私はこれを理解しました。私が求めていた情報へのリンクは次のとおりです。

http://developer.android.com/guide/topics/providers/content-providers.html

そして、これを実行するコードは次のとおりです。

Uri uri = Uri.parse("content://media/external/audio/media/10");
Cursor musiccursor = managedQuery(uri, null, null, null, null);

if (musiccursor.moveToFirst()) {
    String title; 
    int titleColumn = musiccursor.getColumnIndex(MediaStore.Audio.Media.TITLE); 
    title = musiccursor.getString(titleColumn);
}   
于 2011-07-15T15:44:25.373 に答える
1

1 つの列のすべてを取得する必要はありません。これを試して:

Uri uri = Uri.parse("content://media/external/audio/media/10");
String[] columns = new String[] {MediaStore.Audio.Media.TITLE};
Cursor musiccursor = managedQuery(uri, columns, null, null, null);

if (musiccursor.moveToFirst()) {
    String title = musiccursor.getString(0);
}   
于 2012-03-22T21:20:55.513 に答える