是否可以使用Google Play Core Library以编程方式触发Android应用更新,而无需用户交互?

h9vpoimq  于 2024-01-04  发布在  Android
关注(0)|答案(1)|浏览(168)

我目前正在开发一款Android应用,探索在不需要明确的用户交互的情况下执行应用更新的可能性。我已经研究了Google Play Core Library的应用内更新,但它似乎涉及灵活和即时更新类型的用户提示。
有没有什么方法可以实现静默更新或无需用户交互?我的用例涉及的场景是,我希望确保在后台无缝应用更新,而不会中断用户体验。
我会很感激任何见解,建议,或替代方法来处理应用程序更新编程没有明确的用户参与。
下面是我当前代码的简化版本:

  1. private void checkForAppUpdate() {
  2. AppUpdateManager appUpdateManager = AppUpdateManagerFactory.create(this);
  3. InstallStateUpdatedListener installStateUpdatedListener = state -> {
  4. if (state.installStatus() == InstallStatus.DOWNLOADED) {
  5. appUpdateManager.completeUpdate();
  6. restartApp();
  7. }
  8. };
  9. appUpdateManager.registerListener(installStateUpdatedListener);
  10. Task<AppUpdateInfo> appUpdateInfoTask = appUpdateManager.getAppUpdateInfo();
  11. appUpdateInfoTask.addOnCompleteListener(task -> {
  12. if (task.isSuccessful()) {
  13. AppUpdateInfo appUpdateInfo = task.getResult();
  14. if (appUpdateInfo != null && appUpdateInfo.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE) {
  15. startUpdateFlow(appUpdateInfo, appUpdateManager);
  16. }
  17. } else {
  18. Exception exception = task.getException();
  19. if (exception != null) {
  20. Log.e(TAG,"Failed to get AppUpdateInfo: " + exception.getMessage());
  21. }
  22. }
  23. });
  24. }
  25. private void startUpdateFlow(AppUpdateInfo appUpdateInfo, AppUpdateManager appUpdateManager) {
  26. try {
  27. appUpdateManager.startUpdateFlowForResult(
  28. appUpdateInfo,
  29. AppUpdateType.IMMEDIATE,
  30. this,
  31. MY_UPDATE_REQUEST_CODE);
  32. } catch (Exception e) {
  33. throw new RuntimeException(e);
  34. }
  35. }

字符串
有没有办法修改这段代码或实现不同的方法来实现静默或无用户更新?

v1uwarro

v1uwarro1#

有没有什么方法可以在没有用户交互的情况下实现静默更新?
在APK/AAB方面。
我的用例涉及的场景中,我希望确保在后台无缝应用更新,而不会中断用户体验。
根据定义,这对于APK/AAB是不可能的。您无法在不终止其进程的情况下更新应用,这将中断用户体验。
您可以考虑将大部分业务逻辑迁移到脚本语言中,例如通过zipline使用JavaScript,因为您可以非常小心地安全更新这些脚本。

相关问题