在我的应用程序中,我创建文件并将其写入Sdcard.当我将Samsung Galaxy作为USB设备挂载时,我创建的文件在DDMS和Windows资源管理器中正确显示.但是,当它通过USB连接时,它们不会在我的Acer Iconia Tab A500上的Windows资源管理器中显示.我认为这是由于3.0的一些差异?我是否需要在3.0中以不同方式创建我的文件,以便它们在Windows中由usb显示?
ab1*_*b11 10
在写完文件后发送此意图解决了问题.归功于Commons Guy,他在另一个论坛上提供了答案.
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"
+ Environment.getExternalStorageDirectory())));
Run Code Online (Sandbox Code Playgroud)
编辑:Commons Guy评论说发送假意图(如上所述)可能是一个坏主意,所以我用它代替:
//called after writing file, from my activity
new SingleMediaScanner(this, path);
private class SingleMediaScanner implements MediaScannerConnectionClient
{
private MediaScannerConnection mMs;
private String path;
SingleMediaScanner(Context context, String f)
{
mPath = f;
mMs = new MediaScannerConnection(context, this);
mMs.connect();
}
@Override
public void onMediaScannerConnected()
{
mMs.scanFile(mFile, null);
}
@Override
public void onScanCompleted(String path, Uri uri)
{
mMs.disconnect();
}
}
Run Code Online (Sandbox Code Playgroud)
在我的Acer Iconia选项卡上,getExternalStorageDirectory实际上指向内部存储(被视为"共享",而不是"私有"内部存储),并安装为/ mnt/sdcard.在/ mnt/external_sd上的SD卡上有一个替代(和"真实")外部存储.不过,我不确定目前是否有一种完美的方法来获得这条路径.通过USB连接Iconia Tab时,您知道安装了哪个分区吗?
| 归档时间: |
|
| 查看次数: |
11256 次 |
| 最近记录: |