アプリを開いたときに Google Play でアプリのバージョンを確認したい。アプリがインストールされているアプリよりも新しいバージョンを持っている場合、アプリを更新するようにユーザーに通知したい。hereから「android-query」jarが見つかりました。これでは、これでバージョンを動的に確認できません。メジャー、マイナー、またはリビジョンを設定すると思います。どうすればいいですか?
前もって感謝します
Jsoup のようなライブラリを使用したくない場合は、次のようなものを使用して Google Play から現在のバージョン番号を取得できます。
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.MalformedURLException;
import java.net.URL;
public class StackAppVersion {
public static void main(String[] args) {
try {
System.out.println(currentVersion());
} catch (IOException ex) {
System.out.println("Failed to read Google Play page!");
}
}
private static String currentVersion() throws IOException {
StringBuilder sb = new StringBuilder();
try (Reader reader = new InputStreamReader(
new URL("https://play.google.com/store/apps/details?id=com.stackexchange.marvin&hl=en")
.openConnection()
.getInputStream()
, "UTF-8"
)) {
while (true) {
int ch = reader.read();
if (ch < 0) {
break;
}
sb.append((char) ch);
}
} catch (MalformedURLException ex) {
// Can swallow this exception if your static URL tests OK.
}
String parts[] = sb.toString().split("softwareVersion");
return parts[1].substring(
parts[1].indexOf('>') + 1, parts[1].indexOf('<')
).trim();
}
}
URLに「&hl=en」をつけておけば、文字コードはUTF-8でOKです。