每次通过输出流往SD卡写入文件,连接上电脑,用MTP的方式模拟一个移动磁盘,打开磁盘却没有这样一个文件,而手机文件管理器查看就有,造成这个现象的原因是,每次写入之后,MTP的数据库并没有更新,因为更新一次MTP数据库需要的带价比较大,所以只有在重启,挂载和用户手动发送Intent出发,故存入文件后需要手动发送Intent广播,出发一下MTP数据库的更新。
/**
* 扫描 mtp下的文件,在保存文件到 sd卡下后,不能显示,故这里触发一下扫描机制,让手机连上电脑后,就可以读出文件了
*
* @param file
*/
public void fileScan(File file) {
Uri data = Uri.fromFile(file);
sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, data));
}