今天,看到我们老大发了一组特别美的图片。我非常喜欢,于是我下载到了本地。然后打开QQ,想分享给我的朋友们。结果我打开QQ上传图片的时候,根本看不到我下载的图片!!!what?逗我呢!!!不高兴!!!
uping_1477223620591-3.png uping_1477223620615-5.png uping_1477223620576-2.png这是北京十月份的奥林匹克公园,美死了!我好喜欢!放手机看更美!
对于美丽的图片,我都忍不住下载!!!
下面进入正题,怎么更新手机媒体库!
先声明,我也是百度来的!
有三种方法:
- 发送广播,需要一个参数(一个Intent意图(一个媒体扫描文件action和Uri地址))
**sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE,Uri.parse("file://" + file))); **
ps:经过试验,成功!
- 通过MediaScannerConnection 类
MediaScannerConnection.scanFile(context, new String[]{fileSD_file.toString()}, null, null);
ps:经过试验,成功! - 也是通过MediaScannerConnection 类
MediaScannerConnection msc=new MediaScannerConnection(context,new MediaScannerConnectionClient(){
@Override
public void onMediaScannerConnected() {
// TODO Auto-generated method stub
}
@Override
public void onScanCompleted(String path, Uri uri) {
// TODO Auto-generated method stub
}
});
msc.connect();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
URL url = null;
try {
url = fileSD_file.toURL();
} catch (MalformedURLException e) {
e.printStackTrace();
}
MimeTypeMap mtm=MimeTypeMap.getSingleton();
msc.scanFile(fileSD_file.toString(), mtm.getMimeTypeFromExtension(mtm.getFileExtensionFromUrl(url.toString())));
//此句上面的一句可以,下面的一句也可以,都适合这种方法(已用颜色标示)。
// msc.scanFile(fileSD_file.getAbsolutePath(), null);
msc.disconnect();
这个方法略繁琐,大致意思是new一个MediaScannerConnection对象,通过msc.connect()建立连接,通过msc.scanFile(fileSD_file.toString(), mtm.getMimeTypeFromExtension(mtm.getFileExtensionFromUrl(url.toString())));更新,最后msc.disconnect();断开连接。
PS:这个方法真是繁琐,我不喜欢,没有测试。上边两种应该就够用了!
好了!更新媒体库就完成了,图片是这样更新,其他类似媒体库文件应该也是这么更新的吧!
网友评论