2011-07-14 51 views
0

我試圖找到一種方法來通過uri查詢單個文件的mediastore。我有一個uris的列表,爲此我想在我的應用程序中提供更多信息。使用URI查詢MediaStore

如: 內容://媒體/外部/音頻/媒體/ 10

文件:///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); 

在此先感謝。

回答

3

好吧,我想出了這一個。下面是對信息我是後鏈接:

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); 
} 
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); 
} 
相關問題