본문 바로가기

Android/Java

마켓에 올린 앱의 "버전" 가져오는 방법

반응형

오늘은 마켓에 자신의 "앱"이 올라가있다면, 그 앱의 버전을 가져와


현재 버전 : x.x.x             << 자신의 핸드폰에 깔려있는 "버전"

최신 버전 : x.x.x             << 마켓에 올라와 있는 앱의 최신 "버전"


이런식으로 업데이트를 "요구"할 수 있도록 하기 위한 작업에 대해 써 볼 것입니다.


1. 앱의 버전 가져오기


public static String getMarketVersion(String packageName) {
String url = "마켓에 올라와 있는 주소";
try {
Document doc = Jsoup.connect(url).get();
Elements currentVersionDiv = doc.select(".BgcNfc");
Elements currentVersion = doc.select("div.hAyfc div span.htlgb");
for(int i = 0; i<currentVersionDiv.size(); i++) {
if(currentVersionDiv.get(i).text().equals("Current Version")) {
return currentVersion.get(i).text();
}
}
} catch (IOException e) {
e.printStackTrace();
}
return null;
}

위에서 doc.select(".BgcNfc") 등은 자신의 마켓이 올라와 있는 인터넷에서 f12를 누르면 앱의 해당 html을 확인할 수 있습니다.


(Jsoup 사용 방법에 대해서는 각자 공부하시기 바랍니다. 무슨 의민지도요!)


예를 들어보겠습니다. 마켓에 올라왕와있는 카카오톡을 예로 들자면, 





"마켓에 올라와 있는 주소"는 1번 네모박스인 "https://play.google.com/store/apps/details?id=com.kakao.talk" 이 될 것입니다.


현재 마켓에 올라와 있는 "마켓버전"은 2번 네모박스인 "기기에 따라 다릅니다."가 나타내질 것이고


그것을 찾는 방법은 F12를 눌러 3번처럼 확인하는 방법이 있습니다.


3번을 통해 4번을 찾았다면, 그 안에 있는 class문구를 doc.select("");를 통해 찾아내면 됩니다.


정말 삽질하면서 알아간 것을 가르쳐 드렸습니다. 


이렇게 앱의 정보를 가져와 return을 통해 받아서 사용하면 됩니다.






2. 개발하는 앱의 "안드로이드 스튜디오 버전"을 가져오기


이건 "박상권님"의 블로그를 참고했습니다.


public static String getAppVersion(Activity context) {
String device_version = "";
try {
device_version = context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionName;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}

return device_version;
}


이런식으로 1, 2번을 따로 작성하셔서 불러다 써도 되고


context를 빼고 


String device_version = "";
try {
device_version = getPackageManager().getPackageInfo(getPackageName(), 0).versionName;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}



이런식으로 작성하셔서 직접 가져다 쓰시는것도 무방합니다!


이렇게 두 버전을을 모두 가져와


public void getVersionCompare() {
if (getMarketVersion().compareTo(getAppVersion()) > 0) {
Toast.makeText(context, "버전 업데이트가 필요합니다.", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(context, "버전이 같습니다.", Toast.LENGTH_SHORT).show();
}
}

이렇게 작성하셔서 비교하셔도 됩니다~!!! 다른 방법도 있지만 각자 찾아보세요! 저는 다르게 구성해봤는데 이게 젤 간단한거같네요....


Jsoup을 사용하기 위서는 gradle에


// market version check
implementation group: 'org.jsoup', name: 'jsoup', version: '1.10.2'

를 추가하셔야 합니다!!!


안하시면 작동 안해요~~~ ㅎㅎㅎ


------------------이상 마켓과 스튜디오에서 버전을 가져오는 방법이었습니다.


모두 뻘짓 많이 하면서 배워가세요!!! 전 이것조차 html쪽 가져오는 방법을 몰라 몇시간을 헤매면서 공부했답니다..








반응형

'Android > Java' 카테고리의 다른 글

간단한 SplashActivity 만들기  (0) 2018.05.09
ProgressbarUtil 만들기  (0) 2018.05.08
간단한 view pager 사용법  (0) 2018.05.03
권한요청하기  (0) 2018.05.02
sms보내기  (0) 2018.04.26