0

我已经实现了 Google 的提供库,In-App updates并且可以In-App updatesGoogle Play 商店接收。我想在一个应用程序Immediate update中实现两者。Flexible update但我找不到这样做的方法。In-App 更新库基于仅是一个整数的 VersionCode 执行检查。有什么方法可以制定策略来决定是使用灵活更新还是立即更新?

4

1 回答 1

1

因此,他们已经听到了我们的声音,并且他们很快就会提出从 Android Dev Summit '19 中听到的解决方案。

问题:

appUpdateManager.appUpdateInfo.addOnSuccessListener{ info ->
    if(info.updateAvailability == UpdateAvailability.UPDATE_AVAILABLE){
        // Which trigger should I trigger: Flexible or Immediate
    }
}

作为开发人员,我们有 2 个信号来决定我们的策略:

1. 优先信号:表示更新的重要性。优先级值由我们在发布时定义。然后通过 Play Core Api 将此优先级值公开给我们的应用程序。

例子:

appUpdateManager.appUpdateInfo.addOnSuccessListener{ info ->
    if(info.updateAvailability == UpdateAvailability.UPDATE_AVAILABLE){
        if(info.updatePriority() > 3 && info.isUpdateAllowed(AppUpdateType.IMMEDIATE)){
            // trigger Immediate flow
        }
        else if(info.isUpdateAllowed(AppUpdateType.FLEXIBLE)){
            // trigger Flexible flow
        }
    }
}

当我们发布时,我们将优先级设置为整数,假设在 0-5 之间。在我们的应用程序中,我们设置了一个阈值,比如说 3 并构建一个决策树,例如如果优先级大于 3,则触发立即更新,否则触发灵活更新。

2. Staleness Signal:表示设备知道更新的时间。

例子:

appUpdateManager.appUpdateInfo.addOnSuccessListener{ info ->
    if(info.updateAvailability == UpdateAvailability.UPDATE_AVAILABLE){
        if(info.clientVersionStalenessDays() > 90 && info.isUpdateAllowed(AppUpdateType.IMMEDIATE)){
            // trigger Immediate flow
        }
        else if(info.clientVersionStalenessDays() > 30 && info.isUpdateAllowed(AppUpdateType.FLEXIBLE)){
            // trigger Flexible flow
        }
    }
}

他们说这个功能很快就会推出。

在此处查看完整视频:https ://youtu.be/_o_q6hatcIs?t=566

于 2019-12-19T10:03:56.300 回答