问题描述
首先,我向内部测试人员上传了一个版本代码为 34 且版本名称为 3.4 的应用。
卸载以前的应用程序并作为内部测试人员从 Play 商店安装新的应用程序版本 3.4。
我再次上传了一个新版本的应用,版本代码为 35,版本名称为 3.5。
我有四台设备(Redmi node 7 pro、Redmi 6 Pro、三星 A10 和三星 m40)
这里我只在两台设备上更新应用程序(红米 Note 7 pro 和三星 A10)
其余两个设备有什么问题?
我清除了 google Play 商店应用的数据和缓存,并多次打开和关闭客户端应用。
implementation 'com.google.android.play:core:1.9.0'
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
checkUpdate();
}
private void checkUpdate() {
InstallStateUpdatedListener listener = new InstallStateUpdatedListener() {
@Override
public void onStateUpdate(InstallState installState) {
if (installState.installStatus() == InstallStatus.DOWNLOADED) {
Log.d("InstallDownloded","InstallStatus sucsses");
notifyUser();
}
}
};
appUpdateManager = AppUpdateManagerFactory.create(this);
appUpdateManager.registerListener(listener);
Task<AppUpdateInfo> appUpdateInfoTask = appUpdateManager.getAppUpdateInfo();
appUpdateInfoTask.addOnSuccessListener(new OnSuccessListener<AppUpdateInfo>() {
@Override
public void onSuccess(AppUpdateInfo appUpdateInfo) {
String data = "packageName :" + appUpdateInfo.packageName() + "," +
"availabLeversionCode :" + appUpdateInfo.availabLeversionCode() + "," +
"updateAvailability :" + appUpdateInfo.updateAvailability() + "," +
"installStatus :" + appUpdateInfo.installStatus()+ ",";
Log.e("appUpdateInfo :",""+data);
Toast.makeText(MainActivity.this,""+data,Toast.LENGTH_LONG).show();
if (appUpdateInfo.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE
&& appUpdateInfo.isUpdateTypeAllowed(AppUpdateType.IMMEDIATE)) {
requestUpdate(appUpdateInfo);
Log.d("UpdateAvailable","update is there ");
} else if (appUpdateInfo.updateAvailability() == UpdateAvailability.DEVELOPER_TRIGGERED_UPDATE_IN_PROGRESS) {
Log.d("Update","3");
notifyUser();
} else {
Toast.makeText(MainActivity.this,"No Update Available",Toast.LENGTH_SHORT).show();
Log.e("NoUpdateAvailable","update is not there ");
}
}
});
}
private void requestUpdate(AppUpdateInfo appUpdateInfo) {
try {
appUpdateManager.startUpdateFlowForResult(appUpdateInfo,AppUpdateType.IMMEDIATE,MainActivity.this,MY_REQUEST_CODE);
resume();
} catch (IntentSender.SendIntentException e) {
e.printstacktrace();
}
}
@Override
protected void onActivityResult(int requestCode,int resultCode,@Nullable Intent data) {
super.onActivityResult(requestCode,resultCode,data);
if (requestCode == MY_REQUEST_CODE) {
switch (resultCode) {
case Activity.RESULT_OK:
if (resultCode != RESULT_OK) {
Toast.makeText(this,"RESULT_OK" + resultCode,Toast.LENGTH_LONG).show();
Log.d("RESULT_OK :","" + resultCode);
}
break;
case Activity.RESULT_CANCELED:
if (resultCode != RESULT_CANCELED) {
Toast.makeText(this,"RESULT_CANCELED" + resultCode,Toast.LENGTH_LONG).show();
Log.d("RESULT_CANCELED :","" + resultCode);
}
break;
case ActivityResult.RESULT_IN_APP_UPDATE_Failed:
/*if (resultCode != RESULT_IN_APP_UPDATE_Failed){
Toast.makeText(this,"RESULT_IN_APP_UPDATE_Failed" +resultCode,Toast.LENGTH_LONG).show();
Log.d("RESULT_IN_APP_Failed:",""+resultCode);
}*/
}
}
}
@Override
protected void onDestroy() {
super.onDestroy();
try {
appUpdateManager.unregisterListener((InstallStateUpdatedListener) this);
}catch (RuntimeException e){
}
}
private void notifyUser() {
Snackbar snackbar =
Snackbar.make(findViewById(R.id.root),"An update has just been downloaded.",Snackbar.LENGTH_INDEFINITE);
snackbar.setAction("RESTART",new View.OnClickListener() {
@Override
public void onClick(View view) {
appUpdateManager.completeUpdate();
}
});
snackbar.setActionTextColor(
getResources().getColor(R.color.colorAccent));
snackbar.show();
}
private void notifyUser() {
Snackbar snackbar =
Snackbar.make(findViewById(R.id.root),new View.OnClickListener() {
@Override
public void onClick(View view) {
appUpdateManager.completeUpdate();
}
});
snackbar.setActionTextColor(
getResources().getColor(R.color.colorAccent));
snackbar.show();
}
private void resume() {
appUpdateManager.getAppUpdateInfo().addOnSuccessListener(new OnSuccessListener<AppUpdateInfo>() {
@Override
public void onSuccess(AppUpdateInfo appUpdateInfo) {
if (appUpdateInfo.installStatus() == InstallStatus.DOWNLOADED) {
notifyUser();
}
}
});
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)