Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在play store上获取当前应用程序版本_Android_Jsoup - Fatal编程技术网

Android 在play store上获取当前应用程序版本

Android 在play store上获取当前应用程序版本,android,jsoup,Android,Jsoup,我已经实现了在play store上获取当前应用程序版本的代码,这样每当play store上有新版本时,我就可以建议用户升级应用程序。这段代码运行得很好,但现在不起作用了 获取我使用的当前应用程序版本的代码如下: newVersion=Jsoup.connect( "https://play.google.com/store/apps/details?id=" + “+”&hl=en”) .超时(30000) .用户代理( “Mozilla/5.0(Windows;U;WindowsNT 5

我已经实现了在play store上获取当前应用程序版本的代码,这样每当play store上有新版本时,我就可以建议用户升级应用程序。这段代码运行得很好,但现在不起作用了

获取我使用的当前应用程序版本的代码如下:

newVersion=Jsoup.connect(
"https://play.google.com/store/apps/details?id=" +
“+”&hl=en”)
.超时(30000)
.用户代理(
“Mozilla/5.0(Windows;U;WindowsNT 5.1;en-US;rv1.8.1.6)Gecko/20070725 Firefox/2.0.0.6”)
.推荐人(”http://www.google.com)获取()
.选择(“div[itemprop=softwareVersion]”。第一个()

.ownText()此库基于JSoup来解析HTML

您想要的基本实现如下所示

private boolean web_update(){
    try {       
        String curVersion = applicationContext.getPackageManager().getPackageInfo(package_name, 0).versionName; 
        String newVersion = curVersion;
        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();
        return (value(curVersion) < value(newVersion)) ? true : false;
    } catch (Exception e) {
        e.printStackTrace();
        return false;
    }
}
private boolean web_update(){
试试{
String curVersion=applicationContext.getPackageManager().getPackageInfo(包名称,0).versionName;
字符串newVersion=曲线版本;
newVersion=Jsoup.connect(“https://play.google.com/store/apps/details?id=“+程序包名称+”&hl=en”)
.超时(30000)
.userAgent(“Mozilla/5.0(Windows;U;WindowsNT 5.1;en-US;rv1.8.1.6)Gecko/20070725 Firefox/2.0.0.6”)
.推荐人(”http://www.google.com")
.get()
.选择(“div[itemprop=softwareVersion]”)
.first()
.ownText();
返回(值(曲线版本)<值(新版本))?真:假;
}捕获(例外e){
e、 printStackTrace();
返回false;
}
}
如果只想验证版本之间的不匹配,可以更改:

value(曲线版本)
with
value(曲线版本)!=值(新版本)


快乐编码

我也有同样的问题,从这个问题中得到了jppavez的答案: 为我工作

替换

.select("div[itemprop=softwareVersion]")
.first()
.ownText();

编辑: 别忘了捕获RuntimeException,以防止在google再次更改Play Store的源代码时应用程序崩溃。 例如,与crashlytics crashreport结合使用:

    } catch (RuntimeException e) {
        Crashlytics.logException(e);

对我们有效的解决方案

.select("div:containsOwn(Current Version) + div")
                                          .first()
                                          .text(); 

实际上,我已经实现了与您建议的相同的功能,但现在它在jsoup.connect()…owntext.post logcat处给出了错误null指针异常,null指针是因为某些东西得到了null值
.select("div:containsOwn(Current Version) + div")
                                          .first()
                                          .text();