3

图书馆:

implementation 'com.google.android.play:core:1.7.3' 
implementation 'com.google.android.play:core-ktx:1.7.0'

附加信息:

有关应用程序更新和内部应用程序共享的其他所有内容都对我有用,如果我在 if 语句中不使用 daysAvailable 的条件,我确实会收到提到更新的对话框。

1.)我正在根据此处找到的文档在应用程序更新中实施。

      // Returns an intent object that you use to check for an update.
      val appUpdateInfoTask = appUpdateManager.appUpdateInfo

       // Checks whether the platform allows the specified type of update,
      // and checks the update priority.
        appUpdateInfoTask.addOnSuccessListener { appUpdateInfo ->
            val daysAvailable = appUpdateInfo.clientVersionStalenessDays() ?: 0
            Toast.makeText(this, "Update availbable for $daysAvailable days", Toast.LENGTH_LONG).show()
            if (appUpdateInfo.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE
                    && daysAvailable >= DAYS_FOR_FLEXIBLE_UPDATE
                    && appUpdateInfo.isUpdateTypeAllowed(AppUpdateType.FLEXIBLE)) {
                startUpdate(appUpdateInfo, appUpdateManager, AppUpdateType.FLEXIBLE, REQUEST_CODE_UPDATE_FLEXIBLE)
            } else if (appUpdateInfo.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE
                    && daysAvailable > DAYS_FOR_IMMEDIATE_UPDATE
                    && appUpdateInfo.isUpdateTypeAllowed(AppUpdateType.IMMEDIATE)) {
                startUpdate(appUpdateInfo, appUpdateManager, AppUpdateType.IMMEDIATE, REQUEST_CODE_UPDATE_IMMEDIATE)
            }
        }

为了通过 google play 进行尝试,我使用的是内部应用共享方法。所以我实际上在内部应用共享上上传了 3 个版本的应用。所以我点击第一个apk,它的版本号是v200,然后我点击版本201的链接,但根据指南,我没有点击安装。我等了 1 或 2 天,但appUpdateInfo.clientVersionStalenessDays()仍然返回 null,即使在我点击第二版 apk 链接 (v201) 之后几天也是如此。我的第一个问题是,为什么这个方法总是为我返回 null,即使它知道有更新的更新可用?

2.)我的第二个问题是关于appUpdateInfo.clientVersionStalenessDays()它自己的。假设今天是星期一,用户安装了 200 版,我们发布了 201 版,他可以在星期二使用。理论上,星期四appUpdateInfo.clientVersionStalenessDays()应该返回 2(因为这个用户有 2 天有可用的更新)。但他还是没有选择更新。然后在周五我们发布了 202 版,周六他可以使用。星期天,上面的方法应该返回什么?1个还是5个?**所以我的第二个问题基本上是,当有新版本可供用户使用时,此方法计数器是否会重置,当我们发布版本 v202 时是否会重置?(此方法会检查他可以使用 202 版多长时间,还是一般只更新?)。

如果我应该提供有关我的问题的任何其他信息,请告诉我。

4

0 回答 0