簡體   English   中英

USB驅動器上的文件的MediaStore.Audio.Media.DATA為空

[英]MediaStore.Audio.Media.DATA is empty for files on USB-Drive

我正在通過搜索音樂文件

proj = new String[] {[...],
                    MediaStore.Audio.Media.DATA
                    };
Cursor musiccursor = context.getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,proj, MediaStore.Audio.Media.IS_MUSIC + "=1", null, null);

[...]

int ixdata      = musiccursor.getColumnIndex(MediaStore.Audio.Media.DATA);

[...]

while(musiccursor.moveToNext()) {
  [...]
  String data     = musiccursor.getString(ixdata);

使用/ mnt / sdcard上的文件,一切正常,但不幸的是,使用/ mnt / USB中的文件,數據似乎為空。

更糟糕的是,媒體播放器只能使用/ mnt / sdcard中文件的content-URI(即content:// media / external / audio / media / 120),而不能使用/ mnt / USB中文件的content-URI (即content:// media / external / audio / media / 530)。

文件還可以,當我給Mediaplayer絕對路徑即/mnt/USB/testfile.mp3時,我可以正常播放它們

甚至更奇怪:從USB驅動器上的文件中讀取專輯,藝術家,標題等都沒有問題

有人有主意嗎?

謝謝

我已經問過自己同樣的問題,但是我沒有找到媒體存儲區包含具有空數據行的原因。 我想到的是通過不選擇帶有和空數據字段的項目(過濾空數據源)在查詢中向媒體存儲添加“ where子句”。

Cursor cursor = managedQuery(
  MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, 
  MY_COLUMNS, 
  MediaStore.Audio.Media.DATA + "<> ''",
  null,
  SORT_ORDER);

哪里

  • MY_COLUMNS是一個String [],其中包含我的列名
  • SORT_ORDER是我的排序順序選項

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM