【发布时间】:2011-06-05 15:30:07
【问题描述】:
我想让用户在我的程序中安全地移除 SD 卡,但 Android 2.2 公共 API 似乎没有提供执行此操作的方法。有谁知道这样做的正确方法是什么?
【问题讨论】:
我想让用户在我的程序中安全地移除 SD 卡,但 Android 2.2 公共 API 似乎没有提供执行此操作的方法。有谁知道这样做的正确方法是什么?
【问题讨论】:
事实上,在 Logitech Revue(Google TV 伴侣盒)上,Intent 调用会启动存储控制面板,让用户可以访问卸载命令以安全移除。如果您只是将 USB 设备从该设备上拔出,则会被视为不安全/意外移除,如果以这种方式处理,您的卡可能会陷入众所周知的混乱状态。谢谢提示,很有用。
顺便说一句,Revue 有一个不寻常的安排,内置了 /sdcard 单元, 因此,如果您通过 USB 适配器插入外部 SD 卡或使用一些 USB 记忆棒,它将在 /mnt/ 下显示为以“usb”和一些数字开头的名称。因此,您在该设备上有三个存储区域,内部、内置“sdcard”和插入驱动器时将安装驱动器的 USB 端口。
我还没有获得足够的积分,无法包含面板外观的快照。
【讨论】:
您需要将用户带到设备的内置设置。我认为这会奏效。
Intent i = new Intent(android.provider.Settings.ACTION_MEMORY_CARD_SETTINGS);
startActivity(i);
卸载 SD 卡是在不受用户完全控制的情况下可能被恶意使用的操作之一。如果它可以纯粹在软件中完成(无需用户干预),那么代码可能会破坏设备上运行的其他应用程序。
【讨论】: