• 로그인 함 해보끄나?

  • Sarangnamu.net June 17, 2003
    Home Login Profile Study Open Project Q&A Google Code
    구글 스토어에서 현재 앱 버전 가져오기
    Last Modify : 19 April, 2018(01:52)
    기존에 softwareVersion 을 찾아서 하는 방법에서 이번에 구글 플레이 홈페이지가 먼가? 작업이 이루어 졌는지 안되는걸 발견하고 수정했는데 http://nobase-dev.tistory.com/35 를 참고했다. 회사내에서는 Http 통신을 Spring RestTemplate 로 하고 있기 때문에 (구버전, 현재는 okhttp 를 쓴다) 다음과 같이 진행 했다. private String getMarketVersion(String packageName) { String version = ""; StringBuilder sb = new StringBuilder(); try { String url = Constants.APP_BROWSE_STORE_URL + packageName; if (mLog.isDebugEnabled()) { mLog.debug("MARKET URL : " + url); } // 데이터 읽어 오는걸 spring 을 통해 하도록 수정 [aucd29] RestTemplate rest = new RestTemplate(); rest.getMessageConverters().add(new StringHttpMessageConverter()); ClientHttpRequestFactory reqFactory = rest.getRequestFactory(); if (reqFactory instanceof SimpleClientHttpRequestFactory) { ((SimpleClientHttpRequestFactory) reqFactory) .setConnectTimeout(10000); ((SimpleClientHttpRequestFactory) reqFactory) .setReadTimeout(10000); } sb.append(rest.getForObject(url, String.class, "Android")); } catch (Exception e) { e.printStackTrace(); return null; } String startToken = "softwareVersion\">"; String endToken = "<"; int index = sb.toString().indexOf(startToken); // 혹시 기존 형태로 변경될 가능성이 존재하니 일단 나두고 if (index == -1) { // play store 구조가 변경되어서 이전의 파싱 방법으로는 동작하지 않는다. [aucd29] // startToken = "<div class=\"BgcNfc\">Current Version</div><div><span class=\"htlgb\">"; // 또 변경 됨 -_ - [2018-04-19] startToken = "<div class=\"BgcNfc\">Current Version</div><span class=\"htlgb\"><div><span class=\"htlgb\">"; endToken = "</span></div>"; index = sb.toString().indexOf(startToken); if (index == -1) { version = ""; } else { version = sb.toString().substring(index + startToken.length(), index + startToken.length() + 100); version = version.substring(0, version.indexOf(endToken)).trim(); } } else { version = sb.toString().substring(index + startToken.length(), index + startToken.length() + 100); version = version.substring(0, version.indexOf(endToken)).trim(); } return version; } 근데 이거 클라이언트에서 하면 안되는데 흐흠... -_-

    Comment


    입력하3 1545041888



    Locations of visitors to this page