Possible Duplicate:
SDCard content exist but cant see them
运行 Linux Kernel(2.6.31) 并插入 SD 卡的手机。
[ISSUE] 当数据写入 SD 卡时(写入系统调用),写入成功返回。但是,当该卡(通过电话)作为 PC 上的大容量存储设备进行访问时,将看不到数据。
只有在物理上取出卡并重新插入后,然后在 PC 上将其作为大容量存储设备进行访问,才会显示写入的数据。 写入数据后尝试 fsync() 。但它仍然不会显示。
在将数据写入SD卡之前,内核是否维护缓存?如果是这样,我如何确保它被刷新到SD卡?
[编辑]删除标签 MMC
最佳答案
您的问题与 SDCard content exist but cant see them 完全相同- PC正在显示从MTP接口(interface)返回的内容。
stub 代码来执行使文件显示所需的操作:
进口:
import android.media.MediaScannerConnection;
import android.os.Environment;
import android.util.Log;
import java.io.File;
stub 代码:
File f = new File(Environment.getExternalStorageDirectory().getPath() + "/hello_nurse.txt");
if (! f.exists()) {
try {
f.createNewFile();
String[] files = new String[1];
files[0] = Environment.getExternalStorageDirectory().getPath() + "/hello_nurse.txt";
String[] mimes = new String[1];
mimes[0] = "text/plain";
MediaScannerConnection.scanFile(getApplicationContext(), files, mimes, null);
} catch (Exception ex) {
Log.e("SD Create", "Failed to create file", ex);
return;
}
} else {
Log.e("SD Create", "File is already present");
}
关于android - 以 USB 大容量存储模式连接时(通过手机),有时在 PC 上看不到 SD 卡数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12262044/