11

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

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

提前致谢 :)

4

2 回答 2

2

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

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

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

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

  1. 从 play store 安装应用程序,将安装位置设置为 preferExternal。
  2. 确认您的应用程序已安装在外部 SD 卡中,您可以使用 Settings->App 进行检查。
  3. 现在创建新的签名应用程序包。
  4. 安装使用adb install -r myapp.apk
  5. 再次转到设置-> 应用程序并确认位置。
  6. 运行功能测试,看看是否没有任何问题。
于 2013-03-25T16:54:33.057 回答
0

老问题,但根据我的测试,如果应用程序安装在 SD 卡上,然后您将 Manifest 更改为 android:installLocation="internalOnly" (或省略 android:installLocation 属性,相同),当应用程序是升级包管理器将自动将应用程序从 SD 卡移动到内部存储。不知道如果这是不可能的会发生什么(例如,内部存储没有足够的根)。

于 2020-07-31T10:55:14.810 回答