Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java InAppUpdate无法正常工作,下载过程已成功完成,但应用程序未安装_Java_Android_In App Update - Fatal编程技术网

Java InAppUpdate无法正常工作,下载过程已成功完成,但应用程序未安装

Java InAppUpdate无法正常工作,下载过程已成功完成,但应用程序未安装,java,android,in-app-update,Java,Android,In App Update,我在我的应用程序上实现, 我已经在我的另一个应用程序中添加了它的工作正常和它的更新我的应用程序也。 但在我的新应用程序中,我将其添加到与最旧的apk相同的位置,并遵循所有流程进行下载,但不更新该应用程序。如果有人实现了正确的应用程序内更新代码,请共享和帮助 谁能说出来?这是谷歌方面的错误 我已经尝试了所有的链接和网站的应用程序内更新的参考 提前感谢。请尝试下面的代码 private AppUpdateManager appUpdateManager; private Task<AppUpd

我在我的应用程序上实现, 我已经在我的另一个应用程序中添加了它的工作正常和它的更新我的应用程序也。 但在我的新应用程序中,我将其添加到与最旧的apk相同的位置,并遵循所有流程进行下载,但不更新该应用程序。如果有人实现了正确的应用程序内更新代码,请共享和帮助

谁能说出来?这是谷歌方面的错误

我已经尝试了所有的链接和网站的应用程序内更新的参考

提前感谢。

请尝试下面的代码

private AppUpdateManager appUpdateManager;
private Task<AppUpdateInfo> appUpdateInfoTask;

/*--------- Check if update available ----------*/
appUpdateInfoTask = appUpdateManager.getAppUpdateInfo();
appUpdateManager.getAppUpdateInfo().addOnSuccessListener(new OnSuccessListener<AppUpdateInfo>() {
    @Override
    public void onSuccess(AppUpdateInfo result) {
        if (result.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE &&
                result.isUpdateTypeAllowed(AppUpdateType.FLEXIBLE)) {
            Snackbar snackbar = Snackbar
                .make(coordinatorLayout, "Update Available", Snackbar.LENGTH_LONG)
                .setAction("Update", new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        try {
                            appUpdateManager.startUpdateFlowForResult(appUpdateInfo, AppUpdateType.FLEXIBLE, MainActivity.this, REQUEST_CODE_FLEXIBLE_UPDATE);
                        } catch (IntentSender.SendIntentException e) {
                            Log.e(TAG, "requestUpdate :: " + e.getMessage());
                            e.printStackTrace();
                        }
                    }
                });
            snackbar.show();
        }
    }
});

@Override
protected void onResume() {
    appUpdateManager.getAppUpdateInfo().addOnSuccessListener(new OnSuccessListener<AppUpdateInfo>() {
        @Override
        public void onSuccess(AppUpdateInfo result) {
            if (result.installStatus() == InstallStatus.DOWNLOADED) {
                notifyUser();
            }
        }
    });
    super.onResume();
}

@Override
protected void onDestroy() {
    appUpdateManager.unregisterListener(MainActivity.this);
    super.onDestroy();
}

@Override
public void onStateUpdate(InstallState installState) {
    if (installState.installStatus() == InstallStatus.DOWNLOADED) {
        notifyUser();
    }
}

private void notifyUser() {
    Snackbar snackbar = Snackbar
        .make(coordinatorLayout, "Updated Successfully", Snackbar.LENGTH_LONG)
        .setAction("Install", new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                appUpdateManager.completeUpdate();
                appUpdateManager.unregisterListener(MainActivity.this);
            }
        });
    snackbar.show();
}
我希望这能帮助你


谢谢。

您是否添加InstallStateUpdatedListener?是的,我也会在我的一个应用程序上使用它,但在其他应用程序中它不起作用,总是获得安装失败的状态在我的情况下它的工作性能在我的其他4-5应用程序上实现相同的代码,但它不起作用,并且只在一个应用程序上工作。等等,我正在共享我的代码。是的,我的代码与您的代码相同,但不工作,谢谢您的建议: