3

如果有可用的更新版本,我正在尝试在登录前强制更新我的应用程序。我可以检查更新并能够在设备中安装应用程序,我用更新的版本替换我的旧版本,在所有这些过程结束时我想自动打开/调用我的应用程序而不是手动,(我可以手动打开我的应用程序),我不能使用 sqlite 数据库来维护来自应用程序或任何其他 APK 的一些数据,这将强制调用我的应用程序。

任何建议都是非常值得赞赏的。

谢谢。


正如我在我的问题中提到的,我可以通过从我的服务器安装新的 apk 文件来更新应用程序,即使我知道 android market 会处理安装并会要求调用应用程序,但在我的情况下,我必须在我的登台服务器上做同样的事情按流程测试我的应用程序。我能够从我的登台服务器检查更新和安装应用程序,更新的 apk 安装我的旧版本得到卸载,我没有办法调用我的新版本应用程序。

任何建议都将是可观的。

4

2 回答 2

1

您可以轻松地从您的应用程序调用网络服务,以了解是否有更新的版本可用,并指导用户通过 Android 浏览器下载它。这种方法的一个优点是对升级速率的一些控制,而不是市场支持的“大爆炸”方法。

就像是

http://example.com/update.jsp?versionCode=3

其中 versionCode 来自清单版本。然后我会让服务返回空白(无更新)或用户应该被引导到的 URL 以获取新的 apk。

您可以从

        getPackageManager().getPackageInfo(getPackageName(), 0).versionCode 

请触发访问 URL 的新意图。然后用户被发送到下载apk的浏览器

于 2012-12-07T06:00:15.990 回答
0

首先你需要有一个 api 如何跟踪用户版本是否过时..

例如,您将应用当前版本发送到这样的 API:

String version = String.valueOf(BuildConfig.VERSION_CODE);

如果 response.body().isUpdateRequired() 为真,那么您需要在下面调用此警报:

AlertDialog.Builder alertDialog = new AlertDialog.Builder(SplashActivity.this);
                alertDialog.setTitle("Please update your app");
                alertDialog.setMessage("This app version is not supported any longer. Please update your app from the Play Store.");
                alertDialog.setPositiveButton("UPDATE NOW", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {
                        final String appPackageName = getPackageName();
                        try {
                            startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + appPackageName)));
                        } catch (android.content.ActivityNotFoundException anfe) {
                            startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + appPackageName)));
                        }
                    }
                });
                alertDialog.show();
于 2017-07-03T13:29:00.620 回答