- 论坛徽章:
- 0
|
另外在上层, 不是framework, 而是packages目录里面有写媒体库扫描的服务(MediaProvider), 那里面在扫描之前有locale设定. 代码文件是MediaScannerService.java.
LZ你贴的代码是MediaScannerService通过JNI调过来的中间层. 中间层我记得里面还有获取locale的一个操作(即, 你的mLocalEncoding是由MediaScannerService设定, 你这里的mLocalEncoding应该是根据MediaScannerService的设定而来). 所以可以试试是否可以通过改上层locale来搞定. 不然就是LZ你贴的代码需要改了.
MediaScannerService.java中设定locale的代码如下(还是2.2 froyo版本的. 这段代码我直接搜出来的, 手上没环境和源码, 因为我很久没碰Android了):- private MediaScanner createMediaScanner() {
- MediaScanner scanner = new MediaScanner(this);
- Locale locale = getResources().getConfiguration().locale;
- if (locale != null) {
- String language = locale.getLanguage();
- String country = locale.getCountry();
- String localeString = null;
- if (language != null) {
- if (country != null) {
- scanner.setLocale(language + "_" + country);
- } else {
- scanner.setLocale(language);
- }
- }
- }
- return scanner;
- }
复制代码 |
|