强制更新我的android应用程序

时间:2012-12-07 05:49:04

标签: android

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

任何建议都会非常明显。

感谢。


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

任何建议都是可以理解的。

2 个答案:

答案 0 :(得分:1)

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

类似

  

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

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

您可以从

获取版本代码
        getPackageManager().getPackageInfo(getPackageName(), 0).versionCode 

请触发访问该网址的新意图。然后用户被发送到下载apk

的浏览器

答案 1 :(得分:0)

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

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

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

如果response.body()。isUpdateRequired()为true,那么你需要在下面调用这个字段:

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();