【问题标题】:How to safely remove SD card programmatically on Android如何在 Android 上以编程方式安全移除 SD 卡
【发布时间】:2011-06-05 15:30:07
【问题描述】:

我想让用户在我的程序中安全地移除 SD 卡,但 Android 2.2 公共 API 似乎没有提供执行此操作的方法。有谁知道这样做的正确方法是什么?

【问题讨论】:

    标签: android api


    【解决方案1】:

    事实上,在 Logitech Revue(Google TV 伴侣盒)上,Intent 调用会启动存储控制面板,让用户可以访问卸载命令以安全移除。如果您只是将 USB 设备从该设备上拔出,则会被视为不安全/意外移除,如果以这种方式处理,您的卡可能会陷入众所周知的混乱状态。谢谢提示,很有用。

    顺便说一句,Revue 有一个不寻常的安排,内置了 /sdcard 单元, 因此,如果您通过 USB 适配器插入外部 SD 卡或使用一些 USB 记忆棒,它将在 /mnt/ 下显示为以“usb”和一些数字开头的名称。因此,您在该设备上有三个存储区域,内部、内置“sdcard”和插入驱动器时将安装驱动器的 USB 端口。

    我还没有获得足够的积分,无法包含面板外观的快照。

    【讨论】:

      【解决方案2】:

      您需要将用户带到设备的内置设置。我认为这会奏效。

          Intent i = new Intent(android.provider.Settings.ACTION_MEMORY_CARD_SETTINGS);
          startActivity(i);
      

      卸载 SD 卡是在不受用户完全控制的情况下可能被恶意使用的操作之一。如果它可以纯粹在软件中完成(无需用户干预),那么代码可能会破坏设备上运行的其他应用程序。

      【讨论】:

      • “代码可能会破坏设备上运行的其他应用程序”:尤其是现在应用程序可以位于 SD 卡上。更不用说所有用户的照片/音乐都将位于 SD 卡上
      • @Kurru:没错!这就是为什么当我使用手机执行此操作时会出现警告“某些应用程序可能会停止并且可能在您重新安装 SD 卡之前不可用”的原因。有很多方法可能会导致问题。正如您所说,在 SD 卡上保存照片/音乐也会减少内置图库和音乐应用程序可以访问的内容。
      猜你喜欢
      • 1970-01-01
      • 2014-05-13
      • 2010-11-16
      • 1970-01-01
      • 1970-01-01
      • 2016-03-15
      • 2023-03-24
      • 2019-12-17
      • 1970-01-01
      相关资源
      最近更新 更多