当新版本可用时,Android以编程方式更新应用程序

use*_*699 9 android

在我的应用程序中,我想检查应用程序商店中是否有我的应用程序的任何更新版本.如果有,则必须通过警报消息通知用户,如果他/她选择升级我想更新新版本.我想通过我的应用程序完成所有这些.这可能吗?

Ahm*_*lan 13

我有同样的问题,但它由JSOUP库解决.这是图书馆下载链接:http://jsoup.org/download

String newVersion = Jsoup
                        .connect(
                                "https://play.google.com/store/apps/details?id="
                                        + "Package Name" + "&hl=en")
                        .timeout(30000)
                        .userAgent(
                                "Mozilla/5.0 (Windows; U; WindowsNT 5.1; en-US; rv1.8.1.6) Gecko/20070725 Firefox/2.0.0.6")
                        .referrer("http://www.google.com").get()
                        .select("div[itemprop=softwareVersion]").first()
                        .ownText();

                Log.e("new Version", newVersion);
Run Code Online (Sandbox Code Playgroud)


gru*_*unk 6

Google不提供任何API.

不过,您可以在Playstore的网络版上发出http请求(https://play.google.com/store/apps/details?id=your.namespace)

要发出请求,您可以使用DefaultHttpClient

获得页面内容后,您应该解析它(jsoup是一个很好的解决方案)并搜索:

<div class="content" itemprop="softwareVersion"> 2.2.0  </div>
Run Code Online (Sandbox Code Playgroud)

找到页面的这一部分后,您可以提取版本号并将其与应用中可用的版本号进行比较:

try
{
    String version = this.getPackageManager().getPackageInfo(this.getPackageName(), 0).versionName;
    if( ! version.equals(versionFromHTML))
    {
        Toast.makeText(this, "New version available on play store", Toast.LENGTH_SHORT);
    }

}
catch (NameNotFoundException e)
{
    //No version do something
}
Run Code Online (Sandbox Code Playgroud)

对于HTML解析部分,请看这里

请记住,每个人都不会在同一时间看到新版本.传播可能需要一些时间(可能是因为缓存).


归档时间:

查看次数:

28931 次

最近记录:

5 年,11 月 前