android: 在sdcard上创建的文件在 windows电脑上不显示的问题

Posted 夜行过客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android: 在sdcard上创建的文件在 windows电脑上不显示的问题相关的知识,希望对你有一定的参考价值。

解决方案:

1. 重启手机;

2. 在写入文件完成的code后面添加:

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

3. 每次文件写入完毕后调用下面的方法:

public static void notifySystemToScan(Context context, String filePath) {
        Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
        File file = new File(filePath);

        Uri uri = Uri.fromFile(file);
        intent.setData(uri);
        context.sendBroadcast(intent);
    }

 

Why?

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

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

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

参考链接:

 

以上是关于android: 在sdcard上创建的文件在 windows电脑上不显示的问题的主要内容,如果未能解决你的问题,请参考以下文章

在android中使用http比较服务器上文件的大小和sdcard上的文件大小

java 在Android SdCard上创建目录。只需将url作为参数传递,例如“/ myfolder / newFolder”

使用Android NDK将文件写入SDcard以外的位置?

Android模拟器的sdcard操作技巧整理

尝试在 Android 中将文件写入 sdcard 时出现 FileNotFoundException(权限被拒绝)

在 SDCard 上创建包含一些文件的 zip 文件