80,471
社区成员




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;
}
你用模拟器测试下,难道你的英文是全角的
我在返回的前一句添加了cursor.close(); 但是仍然乱码。。有更好的解决办法吗? [quote=引用 3 楼 svenwang 的回复:] [quote=引用 2 楼 u010445247 的回复:] [quote=引用 1 楼 svenwang 的回复:] getListByLocal函数里最后需要执行cursor.close(),不然就可能出现乱码(这个和cursor内部的内存管理有关系)。
我在返回的前一句添加了cursor.close(); 但是仍然乱码。。有更好的解决办法吗? [quote=引用 2 楼 u010445247 的回复:] [quote=引用 1 楼 svenwang 的回复:] getListByLocal函数里最后需要执行cursor.close(),不然就可能出现乱码(这个和cursor内部的内存管理有关系)。
我在返回的前一句添加了cursor.close(); 但是仍然乱码。。有更好的解决办法吗? [quote=引用 1 楼 svenwang 的回复:] getListByLocal函数里最后需要执行cursor.close(),不然就可能出现乱码(这个和cursor内部的内存管理有关系)。
我在返回的前一句添加了cursor.close(); 但是仍然乱码。。有更好的解决办法吗? getListByLocal函数里最后需要执行cursor.close(),不然就可能出现乱码(这个和cursor内部的内存管理有关系)。
getListByLocal函数里最后需要执行cursor.close(),不然就可能出现乱码(这个和cursor内部的内存管理有关系)。