以下内容是我在修改Android1.6 Mediascanner bug的时候一点点总结,仅供参考。
Mediascanner扫描文件的方式共分两种:全盘文件扫描、单一文件扫描
全盘文件扫描:
底层mediascanner.cpp通过C语言的API将文件信息(包括文件被修改时间)通过JNI传递给Java层的MediaScanner.java。
再由MediaScanner.java将文件信息写入媒体数据库。
单一文件扫描:
Java层应用调用MediaScanner.java扫描单一文件的函数,该函数通过Java的API获取文件被修改时间,并写入媒体数据库。MP3下载结束后,DownloadService.java 调用MediaScanner.java扫描单一文件的函数,又因为Java的API获取文件被修改时间与C语言API获取的时间单位不一致,所以导致文件下载结束后写入数据库的文件被时间比实际值大出1000倍。
修改方案
在写入数据库前,先将文件被修改时间减小1000倍,然后在写入媒体数据库。
Android Mediascanner实现机制
精选 转载上一篇:Android 如何连真机测试
下一篇:Android获取未安装apk
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Android Handler机制
Handler机制
ide 赋值 构造方法 -
Android头像列表重叠最简实现
Android 利用 RecyclerView 的装饰器实现头像列表重叠的效果
RecyclerView addItemDecoration -
MediaScanner与音乐信息扫描==
MediaScanner与音乐信息扫描
数据库 存储空间 android平台 库文件 数据