3

我希望能够在应用程序启动时将运行版本与当前在 Google Play 上的同一应用程序版本进行比较。

我找到了一个很好的方法,在这里描述:

public String getLatestVersionNumber() {
    String versionNumber = "0.0.0";

    try  {
        Document doc = Jsoup.connect("http://www.appbrain.com/app/wallpaper-switch/com.mlevit.wallpaperswitch").get();
        Elements changeLog = doc.select("div.clDesc");

        for (Element div : changeLog) {
            String divText = div.text();

            if (divText.contains("Version")) {
                return divText.split(" ")[1];
            }

        }
    }
    catch (IOException e)  {
        e.printStackTrace();
    }

    return versionNumber;
}

但这太慢了,并且严重影响了用户在应用程序启动时的体验。

有没有更快的方法在 Google Play 上查询应用程序的当前版本?

也许是一些隐藏的 LVL 或应用内计费 API?

4

1 回答 1

5

您确定没有任何 API 可以更快地提供 Google Play 版本吗?

好吧,根据定义,网络访问速度很慢。即使 Google Play 有文档化、受支持和许可的 API(在撰写本文时还没有),它也只会比您正在做的事情快一点。

您可以通过 AsyncTask 发表您的建议吗?

步骤#1:创建一个文件。

步骤#2:在该文件中,输入您的版本号,可选地连同以某种格式(例如,JSON)的其他数据(例如,更新描述)。

第 3 步:将该文件上传到某个知名的稳定 URL。

第 4 步:创建一个,将您的文件的HTTPAsyncTask请求放在doInBackground()一个中AsyncTask,并在同一个.onPostExecute()AsyncTask

这是一个示例项目,演示AsyncTask执行 HTTP 操作(从美国国家气象局提取天气预报)并解析结果,WebView完成后更新 UI(填充 a )。

于 2012-08-12T21:58:33.003 回答