2011-12-14 75 views
4

我知道移至SD卡功能,可从Android 2.2的 我想知道有没有办法在我的程序来检测,如果设备支持移动到SD卡功能,如果它的支持可以否则,如果移动不支持比什么都不会发生(会在手机内存)移动到SD卡

我的主要问题是我的应用程序支持以上所有设备从1.6到了,我不能使用

安卓的installLocation =“汽车“

因为... e它在2.2以下版本中不被认可。那么我必须做检查和启用编程,如果是的话如何?我希望你能理解我的问题。

谢谢。

回答

6

为了允许对外部存储装置,并保持与版本比API级别8兼容的下:

  1. 附上android:installLocation属性与所述<manifest>元件的“auto”或“preferExternal”值。

  2. 让你的android:minSdkVersion属性保持原样(小于“8”),并确保你的应用程序代码只使用与该级别兼容的API。

  3. 为了编译您的应用程序,请将您的构建目标更改为API级别8.这是必要的,因为较早的Android库不理解android:installLocation属性,并且在应用程序出现时不会编译它。

当应用程序被安装在设备上用API级别低于8,该android:installLocation属性被忽略并且该应用程序被安装在内部存储设备。

这是Android的Backward Compatibility说。

另请参阅Applications That Should NOT Install on External StorageApplications That Should Install on External Storage

+0

谢谢。这工作。我必须通过编辑项目属性(右键单击Eclipse中的项目)来更改构建目标,并选择至少具有API级别8的目标 – 2011-12-14 08:04:39

0

那么你可以使用此标志。只要尝试针对api 8级以上的版本进行编译。

确保android:minSdkVersion正确设置为4

老平台将忽略android:installLocation和新平台将兑现这一点。

仅用于识别新标志的编译。

移至SD卡可以从2.2及以上,所以你不必明确地进行检查。

0

这是一个OS特定功能不特定于设备的。 您应该在检查操作系统版本。 如果SD卡在设备中不可用,它将不会自动显示移动选项。

2

虽然编程功能可以从2.2或更高版本获得,但实际转移到sd功能并不是每个手机都可以使用,即使存在内部甚至外部SD卡!

现在,在ICS和JB中,操作系统可以决定自行将应用程序移动到SD上,而用户无权手动将应用程序移入/移出SD卡!

此行为已在Galaxy Nexus,Galaxy S3,Galaxy Tab 2,Transformer和Iconia A500上与ICS和JB一起测试过!他们没有一个有移动的标准按钮!

因此,了解用户是否可以在运行时将应用程序移动到SD仍然很有趣。