绝对原创,欢迎转载 转载请保留一下出处http://blog.csdn.net/izard999/article/details/7667234
今天闲来无事把机子root了, HTC G12现在root之前需要官方解锁, 然而官方解锁之后就会自动恢复出厂设置(跟刷机效果差不多了)!
全部搞完了之后, 进入音乐播放器想听听音乐吧, 结果发现都是乱码.!
碰到乱码咱不怕, 毕竟俺是搞开发滴, 没有解决不了的问题!
问题的根本原因是: 媒体扫描是在system_server一启完之后就会启的进程,
也就是说当刷完机第一次启动时, 这个时候系统还没有来得及让用户去选择中文时媒体扫描就已经完了, 媒体扫描的过程会往数据库里面插数据,
这个时候编码应该还是ISO-8859-1,不知道是什么,反正不是UTF-8/GBK! 所以会产生乱码.!
就算你把SD卡插拔很多次也没用(这个是android sdcard mount的行为, 不会整卡扫)
终极解决方案有两种:
1: 适用于已root的机器
无论你是用命令行, 还是用RE, 进入com.android.providers.media/databases目录, 删除external-xxx.db这个文件, 非4.0的用户可以进入设置-->存储-->选择卸载SDcard,
然后再点安装存储卡即可. 4.0的用户没办法, 把卡拔了再插吧
2: 没有root的机器
没有root就代表不能删除数据库文件了. 办法还是有滴.
把你所有的媒体文件全部剪切到电脑里做备份, 也就是说此时你的sdcard里面不留任何媒体文件. 按照1中所说的步骤进入设置,卸载sdcard 然后再把你的
媒体文件重新拷进sdcard, 再点安装sdcard 重新进入音乐, 搞定!