출처 :
http://androi.tistory.com/9
안드로이드 앱이 업그레이드가 되었는데도, 사용자들은 잘 확인하지도 않고, 설사 확인했다고 해도 큰 문제가 없으면 업데이트를 잘하지 않는다.
큰 노력과 수고없이, 앱 시작시 최신버젼을 확인하고 최신버젼이 있을 경우, 사용자에게 팝업을 띄우고, 업데이트 하는 방법을 알아보자.
1. 웹페이지에 최신 버젼을 표시
간단하게 무료로 사용하고 싶으면 구글앱엔진을 추천한다. 그 외에 본인의 블로그 등을 사용해도 좋음
ex) http://checkappver.appspot.com/CheckBBVersion.html
2. 웹페이지의 html 파일을 가져와서 간단한 파싱으로 버젼 구하기
DownThread mThread;
String sVersion; // 웹페이지에서 가져온 버젼이 저장됨
...
3. 현재 앱의 버젼 구하기
4. 현재 앱의 버젼과 웹페이지에서 가져온 버젼을 비교하기
5. 최신 버젼이 있으면 팝업을 띄우고, 확인을 선택하면 해당 마켓으로 가기
...
case 9: // 업데이트 요청
안드로이드 앱이 업그레이드가 되었는데도, 사용자들은 잘 확인하지도 않고, 설사 확인했다고 해도 큰 문제가 없으면 업데이트를 잘하지 않는다.
큰 노력과 수고없이, 앱 시작시 최신버젼을 확인하고 최신버젼이 있을 경우, 사용자에게 팝업을 띄우고, 업데이트 하는 방법을 알아보자.
1. 웹페이지에 최신 버젼을 표시
간단하게 무료로 사용하고 싶으면 구글앱엔진을 추천한다. 그 외에 본인의 블로그 등을 사용해도 좋음
ex) http://checkappver.appspot.com/CheckBBVersion.html
<html>
<body>
version:
1.11
</body>
</html>
2. 웹페이지의 html 파일을 가져와서 간단한 파싱으로 버젼 구하기
DownThread mThread;
String sVersion; // 웹페이지에서 가져온 버젼이 저장됨
// 웹서버에서 369 숫자야구 버젼 가져오기
mThread = new DownThread("http://checkappver.appspot.com/CheckBBVersion.html");
mThread.start();
...
class DownThread extends Thread {
String mAddr;
String mResult;
DownThread(String addr) {
mAddr = addr;
mResult = "";
}
public void run() {
StringBuilder html = new StringBuilder();
try {
URL url = new URL(mAddr);
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
if (conn != null) {
conn.setConnectTimeout(10000);
conn.setUseCaches(false);
if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
BufferedReader br = new BufferedReader(
new InputStreamReader(conn.getInputStream()));
Boolean bVersion = false;
for (;;) {
String line = br.readLine();
if(bVersion){
mResult = line;
break;
}
if(line.equals("version:")){
bVersion = true;
}
if (line == null) break;
}
br.close();
}
conn.disconnect();
}
}
catch (Exception ex) {;}
mAfterDown.sendEmptyMessage(0);
}
}
Handler mAfterDown = new Handler() {
public void handleMessage(Message msg) {
// Toast.makeText(mContext, mThread.mResult, Toast.LENGTH_SHORT).show();
sVersion = mThread.mResult;
}
};
3. 현재 앱의 버젼 구하기
나같은 경우는 리소스에 버젼을 넣고 불러서 확인
String sMyVersion = getResources().getString(R.string.check_version);
4. 현재 앱의 버젼과 웹페이지에서 가져온 버젼을 비교하기
if(!sServerVersion.equals(sMyVersion)){ // 만약 서버와 버젼이 같지 않으면 업데이트 요청
float fMyVersion = Float.parseFloat(sMyVersion);
float fServerVersion = Float.parseFloat(sServerVersion); // 서버 버젼이 클때만 업데이트 요청
if(fServerVersion > fMyVersion){
showDialog(9);
}
}
5. 최신 버젼이 있으면 팝업을 띄우고, 확인을 선택하면 해당 마켓으로 가기
...
case 9: // 업데이트 요청
return new AlertDialog.Builder(mContext)
.setTitle(R.string.str_updateinfo)
.setMessage(R.string.str_updaterequestmsg)
.setCancelable(true)
.setPositiveButton(R.string.str_ok, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
bCheckVersionDialog = true;
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=dingdong.game.bb"));
startActivity(intent);
}
})
.setNegativeButton(R.string.str_cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
bCheckVersionDialog = true;
/* User clicked cancel so do some stuff */
}
})
.create();
'Android > Tip&Tech' 카테고리의 다른 글
ProgressBar 이미지 커스터마이징하기 (0) | 2012.02.08 |
---|---|
액티비티와 태스크 (0) | 2012.02.01 |
마켓 링크 확인하기 (1) | 2012.01.30 |
Lists and focuses in button (1) | 2012.01.26 |
Export an Android SQLite db to an XML file on the SD Card (0) | 2012.01.20 |