android媒体库更新问题,即自定义拍摄视频拍摄完毕,无法立即查看拍摄视频文件问题
2015-02-27 22:13
537 查看
在项目中,自定义拍摄视频界面,在sd卡根目录存放一些视频文件,比如:我在SD卡中通过自定义拍摄视频刚拍摄完视频,sd根目录里面放入了视频文件,那么,这个时候我立马跳转去Gallery里面查看,选择这个目录里的视频,那么,我是无法看到的。
这是什么原因呢?
因为android系统在启动的时候会启动MediaScannerService扫描系统上的多媒体文件,然后将这些多媒体文件的信息加入到多媒体数据库中,应用程序要取得这些多媒体信息就是从这个多媒体数据库里面去取的,并不是从SD卡中取。也就是说,如果开机后增加或删除了一些多媒体,这个多媒体数据库是不会自动刷新的
解决办法:1.重启手机,很明显,在项目中,这个是不可行的
2.更新媒体库
更新媒体库网上常见的方法是通过发送消息给系统,更细媒体库,但是自从版本号19后,即android4.4开始,不再允许非系统应用发送系统消息,而前面所说的发送消息正是系统消息,即该方法失效。解决办法如下:例如更新sd卡根目录:updateMediaDataBase(Environment.getExternalStorageDirectory().getAbsolutePath());//更新媒体库
private void updateMediaDataBase(String filename) {
int currentApiVersion = android.os.Build.VERSION.SDK_INT;// 获得当前sdk版本
if (currentApiVersion < 19) {
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,
Uri.parse("file://" + filename)));
} else {
MediaScannerConnection.scanFile(this, new String[] { filename },
null, new MediaScannerConnection.OnScanCompletedListener() {
public void onScanCompleted(String path, Uri uri) {
Log.i("ExternalStorage", "Scanned " + path + ":");
Log.i("ExternalStorage", "-> uri=" + uri);
}
});
}
}
这是什么原因呢?
因为android系统在启动的时候会启动MediaScannerService扫描系统上的多媒体文件,然后将这些多媒体文件的信息加入到多媒体数据库中,应用程序要取得这些多媒体信息就是从这个多媒体数据库里面去取的,并不是从SD卡中取。也就是说,如果开机后增加或删除了一些多媒体,这个多媒体数据库是不会自动刷新的
解决办法:1.重启手机,很明显,在项目中,这个是不可行的
2.更新媒体库
更新媒体库网上常见的方法是通过发送消息给系统,更细媒体库,但是自从版本号19后,即android4.4开始,不再允许非系统应用发送系统消息,而前面所说的发送消息正是系统消息,即该方法失效。解决办法如下:例如更新sd卡根目录:updateMediaDataBase(Environment.getExternalStorageDirectory().getAbsolutePath());//更新媒体库
private void updateMediaDataBase(String filename) {
int currentApiVersion = android.os.Build.VERSION.SDK_INT;// 获得当前sdk版本
if (currentApiVersion < 19) {
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,
Uri.parse("file://" + filename)));
} else {
MediaScannerConnection.scanFile(this, new String[] { filename },
null, new MediaScannerConnection.OnScanCompletedListener() {
public void onScanCompleted(String path, Uri uri) {
Log.i("ExternalStorage", "Scanned " + path + ":");
Log.i("ExternalStorage", "-> uri=" + uri);
}
});
}
}
相关文章推荐
- Android设备MTP方式连接PC增删文件无法实时更新的问题
- 有关android中加载MP4,3gp等视频文件,无法播放问题的解决
- Android studio android device monitor(DDMS)无文件树及无法查看并导出data文件等一系列问题的解决方法
- eclipse通过android layour editor无法查看布局文件问题解决
- Android 录制的mp4视频文件在IOS中无法播放问题
- Android 录制的mp4视频文件在IOS中无法播放问题
- linux下vsftp的ls命令无法查看目录,无法上传下载文件的问题解决
- Android中自定义ListView无法响应OnItemClickListener中的onItemClick方法问题解决方案
- Evince查看pdf,中文字体无法显示的问题。特别是下载的论文/期刊pdf文件
- Android中自定义ListView无法响应OnItemClickListener中的onItemClick方法问题解决方案
- Android 完美解决自定义preference与ActivityGroup UI更新的问题
- Android中自定义ListView无法响应OnItemClickListener中的onItemClick方法问题解决方案
- Android中自定义ListView无法响应OnItemClickListener中的onItemClick方法问题解决方案<转>
- Android 完美解决自定义preference与ActivityGroup UI更新的问题
- android访问自定义文件出现的问题
- Android中,SD卡上的媒体文件(图片、视频)的改变与通知
- Android中自定义ListView无法响应OnItemClickListener中的onItemClick方法问题解决方案
- SVN更新文件时无法更新的问题
- Android 完美解决自定义preference与ActivityGroup UI更新的问题
- Android中,SD卡上的媒体文件(图片、视频)的改变与通知