11

アプリを開いたときに Google Play でアプリのバージョンを確認したい。アプリがインストールされているアプリよりも新しいバージョンを持っている場合、アプリを更新するようにユーザーに通知したい。hereから「android-query」jarが見つかりました。これでは、これでバージョンを動的に確認できません。メジャー、マイナー、またはリビジョンを設定すると思います。どうすればいいですか?

前もって感謝します

4

5 に答える 5

5

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です。

于 2016-05-15T01:32:07.657 に答える