구글플레이의 앱이 업데이트가 되고 나서 기존 사용자에게 업데이트 알림을 주고싶다면?
여러가지 방법이 있지만 구글 플레이 현재 버전 정보를 String 값으로 읽어와 앱의 manifest의 Versionname과 비교하는 방법으로 사용해 봤습니다
1. 구글플레이 버전정보를 읽어 String으로 변환하기 위한 jsoup.jar 라이브 러리 사용합니다.
jar 파일 import!
[ 다운로드 링크 https://jsoup.org/ ]
2. 클래스 생성 : 구글플레이의 버전 정보를 읽어 내는 클래스입니다.
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(".content");
for (Element mElement : Version) { if (mElement.attr("itemprop").equals("softwareVersion")) { 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 == null) return 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 == null) break; mData += line; }
mReader.close(); }
mConnection.disconnect();
} catch (Exception ex) { ex.printStackTrace(); return null; }
String startToken = "softwareVersion\">"; String endToken = "<"; 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; } |
3. MarketVersionChecker 클래스의 함수 활용!
Tip : onCreate에서 사용하기 위해선 Thread 안에서 사용해야 함수를 이용할 수 있기에 Thread를 사용하시면 됩니다.
/////////////////////////업데이트 된지 안된지, 스토어 버전 값 읽어서 비교 new Thread(){ public void run(){ store_version = MarketVersionChecker.getMarketVersion(getPackageName()); // 마켓 스토어의 현재 버전 값
try { device_version = getPackageManager().getPackageInfo(getPackageName(), 0).versionName; //manifest의 버전 값 확인
System.out.println("버전:"+device_version); System.out.println("스토어버전:"+store_version); } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); }
if (store_version.compareTo(device_version) > 0) {
System.out.println("업데이트필요");
//업데이트 필요 할 때 업데이트 연결 UI로 보내기 Intent i = new Intent(this, update.class); startActivity(i);
} else { // 업데이트 불필요
System.out.println("업데이트불필요");
} }.start(); ///////////////////////////// |
업데이트가 필요할 때 업데이트 알림 UI나 다른 이벤트들을 띄워주면 완료
많이 사용하는 구글 플레이 연결
String url = "market://details?id=" + ""; Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); startActivity(i); |
'프로그래밍 > android' 카테고리의 다른 글
안드로이드, java서버 socket 통신 파일 전송 (4) | 2017.01.05 |
---|---|
안드로이드 오버레이 권한 설정창 이동 (0) | 2016.12.28 |
안드로이드 값 저장 SharedPreferences (2) | 2016.12.27 |
마우스,키보드 어플 추천 (0) | 2016.12.26 |
애드몹 계정 정지 (7) | 2016.12.20 |
애드몹 광고 넣기 (0) | 2016.12.08 |
Listview 빈 공간 이미지,텍스트 표시 (0) | 2016.12.06 |
안드로이드 개발 중 화면 오버레이 문제 해결 (0) | 2016.12.06 |