본문 바로가기

Android

[Android]안드로이드 앱 마켓 버전 체크

반응형

현재 앱이 업데이트가 필요한지 아닌지 판단하기 위해서는 플레이스토어에 현재 앱의 버전이 몇인지 알아내야합니다.


아래의 코드는 플레이스토어에서 등록된 앱의 최신 버전을 가져오는 코드입니다.




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
public class MarketVersionChecker {
    public static String getMarketVersion(String packageName) {
        try {
            Document doc =
                    Jsoup.connect("https://play.google.com/store/apps/details?id=" + packageName).get();
            Elements Version = doc.select(".htlgb").eq(3);
            for (Element mElement : Version) {
                return mElement.text().trim();
            }       
        } catch (IOException ex) {
            ex.printStackTrace();
        }
        return null;
    }
 
    public static String getMarketVersionFast(String packageName) {
        String mData = "", mVer = null;
        try {
            URL mUrl = new URL("https://play.google.com/store/apps/details?id=" + packageName);
            HttpURLConnection mConnection = (HttpURLConnection) mUrl.openConnection();
            if (mConnection == nullreturn null;
            mConnection.setConnectTimeout(5000);
            mConnection.setUseCaches(false);
            mConnection.setDoOutput(true);
            if (mConnection.getResponseCode() == HttpURLConnection.HTTP_OK) {
                BufferedReader mReader =
                        new BufferedReader(new InputStreamReader(mConnection.getInputStream()));
                while (true) {
                    String line = mReader.readLine();
                    if (line == nullbreak;
                    mData += line;
                }
                mReader.close();
            }
            mConnection.disconnect();
        } catch (Exception ex) {
            ex.printStackTrace();
            return null;
        }
        String startToken = "<div class="BgcNfc">Current Version</div><span class="htlgb"><div><span class="htlgb">";
        String endToken = "</span></div>";
        int index = mData.indexOf(startToken);
        if (index == -1) {
            mVer = null;
        } else {
            mVer = mData.substring(index + startToken.length(), index + startToken.length() + 100);
            mVer = mVer.substring(0, mVer.indexOf(endToken)).trim();
        }
        return mVer;
    }
}
cs








다음에는 해당 코드를 사용하지 않고 파이어베이스(FireBase)의 Remote Config를 활용하는 방법을 포스팅 해보겠습니다.



반응형