如果SDCard缺席,如何防止安装Android应用?

时间:2012-09-13 09:28:24

标签: android

我的代码逻辑需要在设备中安装SD卡。我在应用程序的启动画面中添加了对此案例的检查,但是想在下载/安装此应用程序之前通知用户。有没有办法实现这个目标?

谢谢!

3 个答案:

答案 0 :(得分:2)

在应用安装之前无法执行此操作,因为限制此类操作的唯一方法是使用<uses-feature>标记。但是,该标记没有存储要求的选项。您可以提供的最佳警告是将其显着地包含在您的应用说明中。

另一方面,我听过的每个设备都有某种形式的外部存储,无论是SD卡还是作为外部存储安装的内置存储器。您使用启动画面检查外部存储器所做的是最好的方法,因为没有其他选择。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

  

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

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

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

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

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

Look Here for more details .