美文网首页
android中代码生成的文件在手机上可以看见,在电脑上看不见,

android中代码生成的文件在手机上可以看见,在电脑上看不见,

作者: 火星局 | 来源:发表于2018-07-23 10:15 被阅读0次

    前言

    • 问题
    • 背景
    • 解决方案

    问题

    • 项目中生excel 、txt文件,很正常的需求,当你实现此功能后感觉不过如此嘛,很简单。测试组很给抛出一个问题,生成的文件手机上可以看到,在电脑上看不到,当时估计会蒙蔽,怎么可能,这个简单的东东怎么会出错!!!!
    • 在电脑上压根找不到存放文件的文件夹,此现象更是无语。。。。

    背景

    这个问题主要涉及到windows读取android设备盘符及文件传输端口通信的问题。因为系统架构(arm & x86)的差异性,导致无法做到类似于长连接的那种通信机制。总结一句:windows目前还不能实现实时地获取并展示Android系统分区下的文件。

    看到这里依然不太明白,可不可以在通俗一点,答案是当然可以。

    目前大家插上电脑,通常的连接方式都是MTP。一般在插上电脑的时候,手机的状态栏可以供用户选择是以MTP(媒体设备)方式连接还是以PTP(相机)。通常在进行文件操作的时候,大家会使用MTP,而MTP并非传统的磁盘模式,因为手机存储的速度没有那么快,所以google对MTP建立了一个缓存。每次连接电脑其实都是读取的缓存,如果手机上的文件有更新却没有刷新缓存,就会出问题。

    解决方案

    1.最残暴的方式
    重启手机,固然有效,但产品和测试组肯定不同意
    2.代码层实现(主动刷新缓存)
    Google的一些开发者给出的方案是:在写入文件后,添加代码:
    MediaScannerConnection.scanFile(this, new String[] { file.getAbsolutePath() }, null, null);
    3.对于文件夹都找不到的问题
    Uri uri = Uri.fromFile(file);
    Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, uri);
    activity.sendBroadcast(intent);

    相关文章

      网友评论

          本文标题:android中代码生成的文件在手机上可以看见,在电脑上看不见,

          本文链接:https://www.haomeiwen.com/subject/ayydmftx.html