码迷,mamicode.com
首页 > 其他好文 > 详细

Cursor扫描本地音乐文件,英文名也出现乱码,怎么解决。

时间:2014-10-16 00:19:51      阅读:306      评论:0      收藏:0      [点我收藏+]

标签:blog   http   io   os   ar   java   for   文件   sp   

问题描述
扫描本地音乐文件并放入List的代码如下:
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;

	}

模拟器内的音乐文件只有一个,而且是文件名全英,如图:
bubuko.com,布布扣
在模拟器里测试生成列表,显示全部为问号的乱码,如图:
bubuko.com,布布扣
用真机来测试,有些是乱码,有些能正常显示(有些中文也能正常显示),如图:
bubuko.com,布布扣

请问应该怎么解决这个乱码问题,网上找的方法不管用,望各位大神出手相助了! 解决方案1
getListByLocal函数里最后需要执行cursor.close(),不然就可能出现乱码(这个和cursor内部的内存管理有关系)。 解决方案2
你用模拟器测试下,难道你的英文是全角的

Cursor扫描本地音乐文件,英文名也出现乱码,怎么解决。

标签:blog   http   io   os   ar   java   for   文件   sp   

原文地址:http://www.cnblogs.com/yiguobei99/p/4027528.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!