Я нашел 2 ссылки, где я думал, что это будет правильно, но после сборки этого кода ничего не показывалось. Я добавляю одно из двух и недавно создаю приложение.
Ссылка приняла ответ, но он не запущен в моем приложении, и я не могу найти то, что пропустил
Примечание: - Код и ссылка имеют разные коды.
CODE
public class TestingActivity extends AppCompatActivity {
private static final String TAG = "ResTest";
private CoordinatorLayout coordinatorLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_testing);
// coordinatorLayout = findViewById(R.id.res_test);
// Initialize AppUpdateManager. AppUpdateManager helps to Manages operations that allow your app to initiate its own updates.
final AppUpdateManager appUpdateManager = AppUpdateManagerFactory.create(TestingActivity.this);
// Requests the update availability for the current app, an intent to start an update flow, and, if applicable, the state of updates currently in progress.
Task<AppUpdateInfo> appUpdateInfoTask = appUpdateManager.getAppUpdateInfo();
// InstallStateUpdatedListener is listener that used to monitor updates installs.
final InstallStateUpdatedListener installStateUpdatedListener = new InstallStateUpdatedListener() {
@Override
public void onStateUpdate(InstallState installState) {
// If successfully download then call popupSnackBarForCompleteUpdate() to show snackbar of successfully downloaded latest update.
if (installState.installStatus() == InstallStatus.DOWNLOADED) {
// popupSnackBarForCompleteUpdate(coordinatorLayout, appUpdateManager);
Toast.makeText(TestingActivity.this, String.valueOf( appUpdateManager.completeUpdate()), Toast.LENGTH_SHORT).show();
}
}
};
// Checks that the platform will allow the specified type of update.
appUpdateInfoTask.addOnSuccessListener(new OnSuccessListener<AppUpdateInfo>() {
@Override
public void onSuccess(AppUpdateInfo appUpdateInfo) {
if (appUpdateInfo.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE &&
// As it's flexible update so use FLEXIBLE.
appUpdateInfo.isUpdateTypeAllowed(AppUpdateType.IMMEDIATE)) {
// Log.d(TAG, "app here 1");
// Request the update.
try {
appUpdateManager.registerListener(installStateUpdatedListener);
// Starts the desired update flow(HERE is FLEXIBLE update).
appUpdateManager.startUpdateFlowForResult(appUpdateInfo, AppUpdateType.IMMEDIATE, TestingActivity.this, 100);
} catch (IntentSender.SendIntentException e) {
e.printStackTrace();
}
} else {
if (appUpdateInfo.updateAvailability() == UpdateAvailability.DEVELOPER_TRIGGERED_UPDATE_IN_PROGRESS) {
popupSnackBarForCompleteUpdate(coordinatorLayout, appUpdateManager);
}
}
}
});
}
private static void popupSnackBarForCompleteUpdate(View view, final AppUpdateManager appUpdateManager) {
Snackbar snackbar = Snackbar.make(view, "An update has just been downloaded.", Snackbar.LENGTH_INDEFINITE);
snackbar.setAction("RESTART", new View.OnClickListener() {
@Override
public void onClick(View view) {
appUpdateManager.completeUpdate();
}
});
snackbar.show();
}
}
Когда я строил этот код в отладке, я ничего не нашел. Пока приложение опубликовано в play-store, здесь не отображается всплывающее окно обновления.
Что я хочу
Помогите использовать API обновлений в приложении в приложении, и если вы Пожалуйста, объясните поток API обновлений приложения.