我正试图从设备内部存储中获取所有媒体文件。我使用MediaStore检索它,但它只返回一首歌。
请我想它返回所有歌曲在内部存储,但它只返回一首歌,请帮我检查问题出在哪里。
下面是我的代码主活动
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ListView audioView = (ListView) findViewById(R.id.songView);
ArrayList<String> audioList = new ArrayList<>();
String[] proj = { MediaStore.Audio.Media._ID,MediaStore.Audio.Media.DISPLAY_NAME };// Can include more data for more details and check it.
Cursor audioCursor = getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, proj, null, null, null);
if(audioCursor != null){
if(audioCursor.moveToFirst()){
do{
int audioIndex = audioCursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DISPLAY_NAME);
audioList.add(audioCursor.getString(audioIndex));
}while(audioCursor.moveToNext());
}
}
audioCursor.close();
ArrayAdapter<String> adapter = new ArrayAdapter<>(this,android.R.layout.simple_list_item_1,android.R.id.text1, audioList);
audioView.setAdapter(adapter);
}
}`
2条答案
按热度按时间ipakzgxi1#
你可以这样试试。
hlswsv352#
哇,它现在的工作,问题是位于光标audioCursor = getContentResolver(). query(MediaStore. Audio. Media. INTERNAL_CONTENT_URI,项目,空,空,空);我将getContentResolver查询更改为INTERNAL_CONTENT_URI,因为我的设备上没有SD卡。
谢谢大家的支持。