public List<LocalMp3> getListByLocal() {
Cursor cursor = getContentResolver().query(
MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null,
MediaStore.Audio.Media.DEFAULT_SORT_ORDER);
List<LocalMp3> localMp3s = new ArrayList<LocalMp3>();
for (int i = 0; i < cursor.getCount(); i++) {
LocalMp3 localMp3 = new LocalMp3();
cursor.moveToNext();
String title = cursor.getString(cursor
.getColumnIndex(MediaStore.Audio.Media.TITLE));
String artist = cursor.getString(cursor
.getColumnIndex(MediaStore.Audio.Media.ARTIST));
long duration = cursor.getLong(cursor
.getColumnIndex(MediaStore.Audio.Media.DURATION));
String mp3url = cursor.getString(cursor
.getColumnIndex(MediaStore.Audio.Media.DATA));
int isMusic = cursor.getInt(cursor
.getColumnIndex(MediaStore.Audio.Media.IS_MUSIC)); // 判断是否音乐
if (isMusic != 0) {
localMp3.setTitle(title);
localMp3.setArtist(artist);
localMp3.setDuration(duration);
localMp3.setMp3url(mp3url);
localMp3s.add(localMp3);
}
}
return localMp3s;
}
模拟器内的音乐文件只有一个,而且是文件名全英,如图:
在模拟器里测试生成列表,显示全部为问号的乱码,如图:
用真机来测试,有些是乱码,有些能正常显示(有些中文也能正常显示),如图:
请问应该怎么解决这个乱码问题,网上找的方法不管用,望各位大神出手相助了!
...全文
32410打赏收藏
Cursor扫描本地音乐文件,英文名也出现乱码,怎么解决。
扫描本地音乐文件并放入List的代码如下: public List getListByLocal() { Cursor cursor = getContentResolver().query( MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null, MediaStore.Audio.Media.DEFAULT_SORT_ORDER); List localMp3s = new Array