5

我的代码逻辑需要在设备中安装 SD 卡。我在应用程序的初始屏幕中添加了针对这种情况的检查,但想在用户下载/安装此应用程序之前通知他们。有没有办法做到这一点?

谢谢 !

4

3 回答 3

2

在应用程序安装之前无法做到这一点,因为限制此类事情的唯一方法是使用<uses-feature>标签。但是,该标签没有存储要求的选项。您可以给出的最佳警告是将其突出显示在您的应用说明中。

另一方面,我听说过的每个设备都有某种形式的外部存储,无论是 SD 卡还是作为外部存储安装的内置内存。您通过使用启动画面来检查外部存储是执行此操作的最佳方式,因为没有其他选择。

于 2012-09-13T09:34:01.143 回答
0

没有办法做到这一点。必须安装您的应用程序才能检查用户的环境。您可以尝试强制安装您的应用程序的 SD 卡,因此如果没有,Google Play可能(未经测试)根本不允许安装应用程序,但它不会解决您的问题,因为用户仍然不知道为什么。解决方案是在产品说明中明确说明 SD 卡是强制性的。但请注意,需要 SD 卡是有风险的,因为许多设备在仍然提供外部存储的同时没有任何设备。我的建议 - 只需添加有关存储要求的注释并让系统处理它。

于 2012-09-13T09:31:51.387 回答
0

我认为这是不可能的。您正在启动屏幕上检查 sdcard 并阻止用户进行下一个进程是正确的解决方案android:installLocation用于在 sdcard 上安装 android 应用程序。

从 API 级别 8 开始,您可以允许将应用程序安装在外部存储(例如,设备的 SD 卡)上。这是一个可选功能,您可以使用 android:installLocation 清单属性为您的应用程序声明。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    android:installLocation="preferExternal"
    ... >

如果您声明“preferExternal”,您要求将您的应用程序安装在外部存储上,但系统不保证您的应用程序将安装在外部存储上。如果外部存储已满,系统会将其安装到内部存储上。用户还可以在两个位置之间移动您的应用程序。

当您的应用程序安装在外部存储上时:

  • 只要在设备上安装了外部存储,就不会影响应用程序的性能。
  • .apk 文件保存在外部存储中,但所有私有用户数据、数据库、优化的 .dex 文件和提取的本机代码都保存在内部设备内存中。
  • 存储应用程序的唯一容器使用随机生成的密钥进行加密,该密钥只​​能由最初安装它的设备解密。因此,安装在 SD 卡上的应用程序仅适用于一个设备。
  • 用户可以通过系统设置将您的应用程序移动到内部存储。

看这里了解更多详情。

于 2012-09-13T09:35:23.297 回答