【问题标题】:Force users to have latest android app version强制用户拥有最新的安卓应用版本
【发布时间】:2011-07-08 04:26:59
【问题描述】:

是否可以在启动 Android 应用时检查用户是否拥有最新版本,如果没有则强制他更新?或者至少检查一下是否有新版本并告诉他,该应用只有在他下载并安装更新后才能再次运行?

背景是我有一个需要与服务器通信的应用程序。当我更改服务器和客户端之间的接口中的某些内容时,我想确保客户端具有最新版本。

有没有本地方法可以做到这一点?还是我必须自己检查?

只有在你有 mysql 数据库的情况下才能访问?是否可以仅使用网页上的纯文本来执行此操作,并使用当前应用版本进行检查?

【问题讨论】:

  • 好问题!欢迎来到 SO!
  • 很好的问题开始。 +1
  • 这个开源 GitHub 项目 (MAHAndroidUpdater) 完全提供更新功能。试试看,很简单。 github.com/hummatli/MAHAndroidUpdater

标签: java android mysql


【解决方案1】:

是否有可能做到这一点 网页上的纯文本并拥有它 检查当前应用版本?

这就是我会做的:

在文本文件中检查服务器上的最新版本:

HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(url);
HttpResponse response = client.execute(request);

String latestVersion = "";
InputStream in = response.getEntity().getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
StringBuilder str = new StringBuilder();
String line = null;
while((line = reader.readLine()) != null)
{
    str.append(line);
}
in.close();
latestVersion = str.toString();

然后将其与安装的版本进行比较:

private String getSoftwareVersion() {
    try {
            PackageInfo packageInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
            return packageInfo.versionName;//EDIT: versionCode would be better
    } catch (PackageManager.NameNotFoundException e) {
            Log.e(TAG, "Package name not found", e);
    };
 }

【讨论】:

  • 对不起,你会把第一个代码放在哪里?我是 android-server 连接的新手。
  • 您可以选择每天执行此操作,在每次应用程序启动时执行此操作,每次从 Web 服务收到错误时执行此操作,或者您没有得到格式正确的答案(所以你的代码肯定已经改变了)它取决于,没有正确的答案..但我会说最后一个是最好的。
  • 不,我的意思是我将 HttpClient 客户端放在哪里 = new DefaultHttpClient(); HttpGet 请求 = 新的 HttpGet(url); HttpResponse 响应 = client.execute(request);字符串最新版本 = ""; InputStream in = response.getEntity().getContent(); BufferedReader reader = new BufferedReader(new InputStreamReader(in)); StringBuilder str = new StringBuilder();字符串线=空; while((line = reader.readLine()) != null) { str.append(line); } in.close(); latestVersion = str.toString();
  • 你也可以这么好心并添加像 //hashmarks 到我需要为我的特定服务器更改变量的地方等等。谢谢!
  • 这个解决方案有一些问题,我想在这里调查:stackoverflow.com/questions/18835419/…
猜你喜欢
  • 2021-08-04
  • 2013-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多