我写了一个应用程序的Beta版本.它可以通过网络下载(我不会将其发布到Play Market).在新版本发布时,是否可以在没有Play Market的情况下更新此应用程序?
我正在尝试集成新的应用内更新API,但无法测试其实现。似乎我的代码很好,因此我阅读了疑难解答,但无法理解本文档中的两点
确保您要测试的应用使用与Google Play可用的签名密钥相同的签名密钥进行签名。
如果您要测试的应用程序未显示可用更新,请检查您是否已正确设置了测试轨道。
无论如何,我只想在我的设备上进行测试,我从Play商店版本中减少了版本代码,但始终显示UPDATE_NOT_AVAILABLE。
这是代码:-
val appUpdateInfo: Task<AppUpdateInfo> = appUpdateManager.appUpdateInfo
appUpdateInfo.addOnSuccessListener {
if (it.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE && it.isUpdateTypeAllowed(AppUpdateType.FLEXIBLE)) {
appUpdateManager.startUpdateFlowForResult(it, AppUpdateType.FLEXIBLE, this, 2);
}else{
toast("Not Available")
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试在我的应用程序中实现应用程序更新,但我查看的文档/教程与实际的最终实现之间存在脱节。
我遵循了以下来源的各种代码教程:
https://developer.android.com/guide/playcore/in-app-updates/kotlin-java#start-update https://www.section.io/engineering-education/android-application-in-app-update -using-android-studio/ https://medium.com/android-news/implement-in-app-update-in-android-68892bd11e35 https://www.raywenderlich.com/8034025-in-app-updates-入门
代码本身相当简单。
但我发现所有这些教程都缺少的是如何实际调用应用内更新。这些教程似乎都专门做了应用内更新活动。如何从我的主要活动中启动此应用内更新活动?或者,如何将应用程序内更新代码合并到我已经存在的主要活动中?
我假设我想要某种异步启动应用程序内更新监听器或类似的东西,但我似乎无法专注于集成所有应用程序内更新代码/应用程序内更新活动的最后一步进入我的应用程序。
编辑:这是我尝试过的示例
public class MainActivity extends AppCompatActivity implements RegionViewAdapter.ItemClickListener {
private InstallStateUpdatedListener installStateUpdatedListener;
private static final int FLEXIBLE_APP_UPDATE_REQ_CODE = 123;
// if you change this value, you must also change it in the app build.gradle
private final String currentVersion = "2021.06.6";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
appUpdateManager = AppUpdateManagerFactory.create(this);
installStateUpdatedListener = state -> {
if (state.installStatus() == InstallStatus.DOWNLOADED) {
popupSnackbarForCompleteUpdate();
} else if (state.installStatus() == InstallStatus.INSTALLED) {
removeInstallStateUpdateListener(); …Run Code Online (Sandbox Code Playgroud)