Mohammad Sajib
Mohammad Sajib

Reputation: 1

In-app updates android studio Support in-app updates ( Java)

  1. In your app’s build.gradle file:

    dependencies {

    implementation 'com.google.android.play:app-update:2.1.0'
    
    }
    

Check for update availability

Before requesting an update, check if there is an update available for your app. Use AppUpdateManager to check for an update:

public class MainActivity extends AppCompatActivity {



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

       


        inAppUpdate();
    }

Before requesting an update, check if there is an update available for your app. Use AppUpdateManager to check for an update:

//InAppUpdate==================================

public static final int RC_APP_UPDATE = 100;
private AppUpdateManager mAppUpdateManager;

private void inAppUpdate() {
    mAppUpdateManager = AppUpdateManagerFactory.create(this);
    mAppUpdateManager.getAppUpdateInfo().addOnSuccessListener(new OnSuccessListener<AppUpdateInfo>() {
        @Override
        public void onSuccess(AppUpdateInfo result) {
            if (result.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE
                    && result.isUpdateTypeAllowed(AppUpdateType.IMMEDIATE)) {
                try {
                    mAppUpdateManager.startUpdateFlowForResult(result, AppUpdateType.IMMEDIATE, MainActivity.this
                            , RC_APP_UPDATE);

                } catch (IntentSender.SendIntentException e) {
                    e.printStackTrace();
                }
            }
        }
    });
    mAppUpdateManager.registerListener(installStateUpdatedListener);
}
//in app update hare
//======================
private InstallStateUpdatedListener installStateUpdatedListener = new InstallStateUpdatedListener() {
    @Override
    public void onStateUpdate(InstallState state) {
        if (state.installStatus() == InstallStatus.DOWNLOADED) {
            showCompletedUpdate();
        }
    }
};

private void showCompletedUpdate() {
    Snackbar snackbar = Snackbar.make(findViewById(android.R.id.content), "New app is ready!",
            Snackbar.LENGTH_INDEFINITE);
    snackbar.setAction("Install", new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            mAppUpdateManager.completeUpdate();
        }
    });
    snackbar.show();

}
@Override
protected void onStop() {
    if (mAppUpdateManager != null)
        mAppUpdateManager.unregisterListener(installStateUpdatedListener);
    super.onStop();
}

@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
/* we can check without requestCode == RC_APP_UPDATE because
we known exactly there is only requestCode from  startUpdateFlowForResult() */
    if (requestCode == RC_APP_UPDATE && resultCode != RESULT_OK) {
        Toast.makeText(this, "Cancel", Toast.LENGTH_SHORT).show();
    }
    super.onActivityResult(requestCode, resultCode, data);
}
@Override
protected void onResume() {
    super.onResume();
    mAppUpdateManager.getAppUpdateInfo().addOnSuccessListener(new OnSuccessListener<AppUpdateInfo>() {
        @Override
        public void onSuccess(AppUpdateInfo result) {
            if (result.updateAvailability() == UpdateAvailability.DEVELOPER_TRIGGERED_UPDATE_IN_PROGRESS) {
                try {
                    mAppUpdateManager.startUpdateFlowForResult(result, AppUpdateType.IMMEDIATE, MainActivity.this
                            , RC_APP_UPDATE);
                } catch (IntentSender.SendIntentException e) {
                    e.printStackTrace();
                }
            }
        }
    });
}

enter image description here

Upvotes: 0

Views: 124

Answers (0)

Related Questions