마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

구글마켓에 올린 어플 버전비교..?

0 추천

구글마켓에 올린 어플 버전과 제 폰에 설치된 어플 버전을 비교할수잇는 방법이 없을까요?

package common;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
 
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
 
public class MarketVersionChecker {
 
public String getMarketVersion(String packageName) {
try {
Document doc = Jsoup.connect(
+ 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 String getMarketVersionFast(String packageName) {
String mData = "", mVer = null;
 
try {
+ 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,660 포인트) 님이 2014년 11월 22일 질문

2개의 답변

0 추천
별도의 서버에 앱 버전 정보를 올려두고 그걸 검사하세요.

구글 플레이에서 직접적으로 제공하는 API는 없습니다.
익명사용자 님이 2014년 11월 23일 답변
0 추천
String verName = "";
try
{
PackageInfo pInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
verName = pInfo.versionName;
}
catch (NameNotFoundException nnfe) {
}
 
String[] verCode = verName.split("\\."); 
   
// 버젼을 체크한후에 새로운 버젼이 있으면 업데이트를 시도 합니다
// 업데이트 메시지창 뜨고 update/skip/review 창이 뜹니다
ms = new MarketService(this);
 
 
@SuppressWarnings("static-access")
int msv1 = ms.MINOR;
@SuppressWarnings("static-access")
int msv2 = ms.REVISION;
@SuppressWarnings("static-access")
int msv3 = ms.MAJOR;
 
/*
Toast toast1 = Toast.makeText(getApplicationContext(),
verName + " " + String.valueOf(verCode.length), Toast.LENGTH_LONG);
toast1.setGravity(Gravity.CENTER, 0, 0);
toast1.show();
*/
 
if(verCode.length==3)
{
 
int ver1 = 0;
int ver2 = 0;
int ver3 = 0;
ver1 = Integer.parseInt(verCode[0]);
ver2 = Integer.parseInt(verCode[1]);
ver3 = Integer.parseInt(verCode[2]);
 
int veradd = (ver1*100) + (ver2*10) + ver3;
int msadd = (msv1*100) + (msv2*10) + msv3;
 
 
String msg1 = String.valueOf(veradd) + "\r\n";
msg1 = msg1 + String.valueOf(msadd);
 
 
Toast toast2 = Toast.makeText(getApplicationContext(),
msg1, Toast.LENGTH_LONG);
toast2.setGravity(Gravity.CENTER, 0, 0);
toast2.show();
 
if(msadd>veradd)
{
ms.force(true);
ms.level(MarketService.MAJOR).level(MarketService.MINOR).level(MarketService.REVISION).checkVersion();
updatecheck= true;
}
}
 
 
업데이트가 될떄에 프로그램을 종료 시킨후에 업데이트창이 뜨면 업데이트를 시도...
 
doridori2013@nate.com
 
익명사용자 님이 2014년 11월 23일 답변
...