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

Bil*_*Ape 3 android android-lvl in-app-billing google-play

我希望能够在应用程序启动时将运行版本与当前在 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;
}
Run Code Online (Sandbox Code Playgroud)

但是它太慢了,并且严重妨碍了应用程序启动时的用户体验。

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

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

Com*_*are 5

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

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

你能就如何通过 AsyncTask 发布你的建议吗?

第 1 步:创建文件。

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

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

步骤#4:创建AsyncTask,把HTTP请求为您的文件中doInBackground()的一个AsyncTask,以更新UI(优选地通过一些非模式中)onPostExecute()相同的AsyncTask

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