Android(安卓)Mediascanner实现机制
16lz
2021-01-25
转自:http://www.devdiv.com/forum.php?mod=viewthread&tid=44870&extra=page%3D3%26filter%3Ddigest%26digest%3D1%26digest%3D1
以下内容是我在修改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倍,然后在写入媒体数据库。
更多相关文章
- 一款常用的 Squid 日志分析工具
- GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
- RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
- Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
- Android(安卓)Logcat 报错:Could not create the view: For input
- Android中使用Sonar进行代码质量分析
- Android(安卓)图片文件夹区别
- Android(安卓)SDK: adb 常用命令的使用(无线连接、端口转发、文件
- eclipse3.4创建android工程出现program.cpg文件找到不到
随机推荐
- Android开发之Android(安卓)Studio安装教
- Android(安卓)Material Design :LinearLay
- SAP BSP, Java Web Project,Android和微信
- Ubuntu搭建Eclipse+JDK+SDK的Android
- Android(安卓)用axis2 webService产生jav
- Gradle build 报错:Received status code
- Android(安卓)SDK文档之Drawable Mutatio
- android:onTouch()和onTouchEvent()的区
- 开始使用Android(安卓)Sutdio(三)创建一个H
- Android(手机)连接电脑本地服务器(flask)