手机插上电脑,看不到新增的文件的解决方案

本文探讨了Android手机与电脑连接时文件不可见的问题,提供了多个解决方案,如重启手机、卸载并重新挂载SD卡、刷新内部存储空间等。详细解释了这些问题的根源在于手机与电脑间使用的MTP模式缓存机制,并介绍了如何通过各种方法刷新此缓存以解决问题。
摘要由CSDN通过智能技术生成

把android手机插上电脑,有的时候会看不到你想看到的文件,例如:new File产生的文件,某些软件下载同步的文件。

这让人很恼火,在网上搜索了一下,有几个行之有效的方案:

1,重启手机----笔者测试通过

2,如果是外置SD卡,在“设置”->"存储"里,选择卸载SD卡,然后再挂载----笔者写这篇文章的时候,还没有测试,晚上会进行测试并更新测试结果。

3,在“设置”->"存储"里,“内部存储空间”这个栏目里,有个一个刷新的按钮,点击它----笔者测试通过。

4,下载一个软件SDRescan,在插上电脑之前运行一下----笔者没有测试,据一些网友反馈是可行的,但是目前尚不支持android4.4。

5,如果你是连接上之后,所有文件都看不见了,那么,你需要查看所有应用,找到“媒体存储”这个应用(英文大概叫做MediaStorage,没有严格的求证),检查是否已经启用。

      然后执行方案3。


有了上述的解决办法,我们来讨论下这个问题的来龙去脉:

目前大家插上电脑,通常的连接方式都是MTP。一般在插上电脑的时候,手机的状态栏可以供用户选择是以MTP(媒体设备)方式连接还是以PTP(相机)。

通常在进行文件操作的时候,大家会使用MTP,而MTP并非传统的磁盘模式,因为手机存储的速度没有那么快,所以google对MTP建立了一个缓存。

每次连接电脑其实都是读取的缓存,如果手机上的文件有更新却没有刷新缓存,就会出问题。

我们目前讨论的就是上面这个现象造成的问题。

Google的一些开发者给出的方案是:在创建文件的时候,添加一行代码:

MediaScannerConnection.scanFile(this, new String[] { file.getAbsolutePath() }, null, null);

这个方法会刷新缓存。参考:https://code.google.com/p/android/issues/detail?id=38282


但是这么一来,其实是把问题推给了所有的android的应用了:你们的app代码写的有问题!

所以大家除了抱怨google之外,能做的就是想办法来刷新这个缓存。思路基本上是:

1,缓存是“媒体存储”这个应用建立的

2,这个应用活着才能正常使用

3,让他死,再活:a,重启,行之有效;b,停止掉再启动这个应用,无效,没有触发刷新;

4,手动刷:卸载设备再重新挂载,对于外置sd卡是有效的,内置的操作简单不了,有其他限制。

5,刷新存储设备,就是上面提到的方案3.

6,集成刷,做成应用来刷,就是上面提到的方案4;

7,自己来,有些开发者根据问题原理,写了一个应用,也可以刷,源代码在:https://github.com/Sarkie/mtpfix

      代码是有效的,但是设计的不太好,可以进行优化,有精力、有条件的朋友可以优化一下。


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值