【发布时间】:2012-08-12 21:15:54
【问题描述】:
我希望能够在应用程序启动时将运行版本与当前在 Google Play 上的同一应用程序版本进行比较。
我找到了一个很好的方法,描述为here:
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?
【问题讨论】:
-
为什么不在 AsyncTask 中做呢?这样就不会干扰用户界面?另外,您到底想完成什么?
-
@kcoppock 我想显示一个对话框,通知用户更新版本并建议去 Google Play 更新它(许多用户不会费心检查 Google Play 的更新,所以我需要让他们尽快了解新版本)。你能通过 AsyncTask 发表你的建议吗?
-
这依赖于 AppBrain 不改变他们的网页设计,并间接依赖于 AppBrain 盗版 Play Store 数据。请在包含您应用程序版本号的某个地方(例如 Amazon S3)维护您自己的文件。并且总是在后台线程(例如,
AsyncTask)上进行网络 I/O。 -
@CommonsWare 这就是我寻求更好方法的原因。您确定没有任何 API 可以更快地提供 Google Play 版本吗?你能通过 AsyncTask 发表你的建议吗?
标签: android google-play in-app-billing android-lvl