将android:installLocation从preferExternal更改为internalOnly

时间:2013-03-25 16:32:20

标签: android android-widget installation android-sdcard

我在Google Play市场上有一个应用程序,我将android:installLocation="preferExternal"添加到manifest.xml文件并很久以前就已发布。现在我想添加Android主屏幕小部件,因此我需要将其更改为android:installLocation="internalOnly"。如果我这样做,用户升级时会发生什么?因为用户已在SD卡上安装了旧应用程序。这种情况的最佳解决方案是什么?

如果有人有这种经历,请告诉我。

提前致谢:)

2 个答案:

答案 0 :(得分:1)

当您将安装位置设置为preferExternal时,应用程序特定文件将存储在外部SD卡的.android_secure目录中。

当用户将SD卡安装为USB Mass Storage(从Android Jelly Bean中删除功能)时,这些类型的应用程序不可用。

提出这个问题,我相信你的情况下,应用程序将安装到内部存储器上,并将.android_secure中的文件移动到内部位置。

您可以通过以下方式确认:

  1. 从Play商店安装应用程序,并将“安装位置”设置为preferExternal。
  2. 确认您的应用程序已安装在外部SD卡中,您可以使用Settings-> App进行检查。
  3. 现在创建新签名的应用程序包。
  4. 使用adb install -r myapp.apk
  5. 安装
  6. 再次转到设置 - >应用并确认位置。
  7. 运行功能测试以查看是否有任何损坏。

答案 1 :(得分:0)

一个老问题,但是根据我的测试,如果在SD卡上安装了一个应用,然后将清单更改为android:installLocation =“ internalOnly”(或省略android:installLocation属性,该属性相同),何时应用已升级,程序包管理器将自动将应用从SD卡移至内部存储。 不知道如果不可能的话会发生什么(例如,内部存储的根目录不足)。