背景:开发的Android项目使用代码生成了EXCEL文件存储到本地,可以正常查看分享;
测试部门提出问题:使用USB连接到Windows进行手机存储空间查看,发现文件夹及文件均无法显示。
原因: 通常在进行文件操作的时候,大家会使用MTP,而MTP并非传统的磁盘模式,因为手机存储的速度没有那么快,所以google对MTP建立了一个缓存。每次连接电脑其实都是读取的缓存,如果手机上的文件有更新却没有刷新缓存,就会出问题。
解决方案:
重启手机【有用但不建议用】
代码层实现主动刷新缓存: 在写入文件后,添加代码: MediaScannerConnection.scanFile(this, new String[] { file.getAbsolutePath() }, null, null);
对文件夹无法找到的问题: Uri uri = Uri.fromFile(file); Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, uri);