안녕하세요.
플레이스토어에 출시되어 있는 앱의 버전보다 낮으면 업데이트가 되게끔 되는 기능을 찾다가
In - App Update를 발견하여 사용하게 되었습니다. 하지만 앱을 실행시켜보면 에러조차 뜨지 않아 많은 어려움을 겪고 있습니다.
고수님들의 많은 조언 부탁드리겠습니다.
소스코드 입니다.
private void checkUpdate() {
mAppUpdateManager = AppUpdateManagerFactory.create(getApplicationContext());
// 업데이트를 사용 가능한 상태인지 체크
Task<AppUpdateInfo> appUpdateInfoTask = mAppUpdateManager.getAppUpdateInfo();
appUpdateInfoTask.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, SplashActivity.this, MY_REQUEST_CODE);
} catch (IntentSender.SendIntentException e) {
Log.e("AppUpdater", "AppUpdateManager Error", e);
e.printStackTrace();
}
} else {
// 업데이트가 없는 상태
Log.d("AppUpdater" ,"업데이트가 없습니다.");
}
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == MY_REQUEST_CODE) {
if(requestCode != RESULT_OK) {
Log.d("AppUpdate", "Update low failed! Result colde" + resultCode);
Toast.makeText(this, "앱을 사용하기 위해서는 업데이트가 필요합니다.", Toast.LENGTH_SHORT).show();
finishAffinity();
}
}
}
@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, SplashActivity.this, MY_REQUEST_CODE);
}catch (IntentSender.SendIntentException e) {
e.printStackTrace();
}
}
}
});
}