我已经在 google play store 中启动了应用程序,对于该应用程序,我需要实施即时应用程序更新,以解决已经在使用我的应用程序的问题
我已经尝试过 Github 示例,这些示例是灵活更新而不是即时更新。
在android开发者网站上我也经历过我没有得到正确的例子
我已经在 google play store 中启动了应用程序,对于该应用程序,我需要实施即时应用程序更新,以解决已经在使用我的应用程序的问题
我已经尝试过 Github 示例,这些示例是灵活更新而不是即时更新。
在android开发者网站上我也经历过我没有得到正确的例子
尝试以下方法进行应用内更新以立即更新 android 应用。
在应用程序构建 gradle 文件中添加以下行。
implementation 'com.google.android.play:core:1.6.3'
为了更好的方法,将此单一方法代码放在您的 MainActivity 中并在 onCreate() 方法中调用。
AppUpdateManager appUpdateManager;
private void inAppUpdate() {
// Creates instance of the manager.
appUpdateManager = AppUpdateManagerFactory.create(this);
// Returns an intent object that you use to check for an update.
Task<AppUpdateInfo> appUpdateInfoTask = appUpdateManager.getAppUpdateInfo();
// Checks that the platform will allow the specified type of update.
appUpdateInfoTask.addOnSuccessListener(new OnSuccessListener<AppUpdateInfo>() {
@Override
public void onSuccess(AppUpdateInfo appUpdateInfo) {
Log.e("AVAILABLE_VERSION_CODE", appUpdateInfo.availableVersionCode()+"");
if (appUpdateInfo.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE
// For a flexible update, use AppUpdateType.FLEXIBLE
&& appUpdateInfo.isUpdateTypeAllowed(AppUpdateType.IMMEDIATE)) {
// Request the update.
try {
appUpdateManager.startUpdateFlowForResult(
// Pass the intent that is returned by 'getAppUpdateInfo()'.
appUpdateInfo,
// Or 'AppUpdateType.FLEXIBLE' for flexible updates.
AppUpdateType.IMMEDIATE,
// The current activity making the update request.
HomeActivity.this,
// Include a request code to later monitor this update request.
UPDATE_REQUEST_CODE);
} catch (IntentSender.SendIntentException ignored) {
}
}
}
});
appUpdateManager.registerListener(installStateUpdatedListener);
}
//lambda operation used for below listener
InstallStateUpdatedListener installStateUpdatedListener = installState -> {
if (installState.installStatus() == InstallStatus.DOWNLOADED) {
popupSnackbarForCompleteUpdate();
} else
Log.e("UPDATE", "Not downloaded yet");
};
private void popupSnackbarForCompleteUpdate() {
Snackbar snackbar =
Snackbar.make(
findViewById(android.R.id.content),
"Update almost finished!",
Snackbar.LENGTH_INDEFINITE);
//lambda operation used for below action
snackbar.setAction(this.getString(R.string.restart), view ->
appUpdateManager.completeUpdate());
snackbar.setActionTextColor(getResources().getColor(R.color.your_color));
snackbar.show();
}
礼貌在这里
我们在我们的应用程序中使用以下场景进行强制更新。
我们在后端数据库中维护当前版本代码和最新版本代码。