홈으로 | 무료회원가입 | 아이디/비번찾기
추천음악방송
앱 버전 체크 스토어로 이동 [Android]
6년 전
보통 앱이 업그레이드 됐어도, 대부분의 사람들이 자동으로 안되면 업데이트를 하지 않는다.

자체서버를 사용하면 apk 파일로 체크를 하면 되지만, 개인개발자나 서버를 가지고 있지 않는 회사에서는 까다롭죠.(갑자기 존댓말..)

이번에 이걸 구현할 일이 생겨서 구현하다가 블로그에 처음으로 올린다.

http://androi.tistory.com/9

이 사이트를 참조 하였다.


1. 웹 페이지에 최신 버전을 표시

간단하게 무료로 사용하고 싶으면 구글앱엔진을 추천한다.
ex)  http://checkappver.appspot.com/CheckBBVersion.html

<html>
<body>
version:
1.11
</body>
</html>

전 저기 있는 예제사이트를 사용했습니다. 구글앱엔진을 검색하시면 되겠습니다. ^^

웹페이지를 구현하실려면 http://www.labnol.org/internet/host-website-on-google-app-engine/18801/ 여기 보셔도 좋을듯 합니다~
어찌 됐건 구현 해야 할듯 ㅎ

2. 웹페이지의 html 파일을 가져와서 버전 구하기

//전역 변수
DownThread mThread;
String sVersion;  // 웹페이지에서 가져온 버젼이 저장됨

//onCreate()
mThread = new DownThread("http://checkappver.appspot.com/CheckBBVersion.html");
mThread.start();

//class
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) {
   sVersion = mThread.mResult;
   Toast.makeText(getBaseContext(), sVersion, Toast.LENGTH_SHORT).show();
  
};

이렇게 sVersion에 웹페이지에 표시 되어 있는 버젼을 넣습니다. Handler에서 토스트 메세지로 띄워보면 잘 보입니다.



3. 현재 핸드폰에 설치 되어 있는 앱 버전 구하기.



여기서 보시면 android:versionName="1.11" 이 현재 앱의 버전입니다. 이건 개발자가 수정할수 있고, 스토어에서 보여지는 버전입니다.
위의 android:versionCode="1" 은 앱을 스토어에 업데이트 시킬때마다 변경시켜줘야 합니다.
1씩 올린다고 할때 업데이트를 10번 했으면 android:versionCode="10" 이 되겠죠? ㅎㅎ

아, 그리고 인터넷 권한 설정을 해줘야 합니다.

<uses-permission android:name="android.permission.INTERNET"></uses-permission>


자, 이걸 이제 소스상에서 구해봅시다.

public static String getVersionName(Context context) {
        try {
            PackageInfo packageInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), 0);
            return packageInfo.versionName;
        } catch (NameNotFoundException e) {
        
            return null;
        }
    }

onCreate() 에서
Toast toast = Toast.makeText(getApplicationContext(), getVersionName(getBaseContext()) , Toast.LENGTH_SHORT);
toast.show();

이렇게 띄워보니 현재 앱의 버전이 잘 보입니다.


4. 버전 비교.

Handler mAfterDown = new Handler() {
  public void handleMessage(Message msg) {
   sVersion = mThread.mResult;

   if(sVersion.equals(getVersionName(getBaseContext()))) {
       Toast toast = Toast.makeText(getApplicationContext(), "최신 버전입니다.", Toast.LENGTH_SHORT);
          toast.show();
      }
      else if(!sVersion.equals(getVersionName(getBaseContext()))) {
       Uri uri = Uri.parse("이동 하려는 url");
       Intent intent = new Intent(Intent.ACTION_VIEW, uri);
       startActivity(intent);
      }
  }
};

이렇게 기존에 있던 Handler 안에서 토스트 메세지를 지우고, if문으로 비교하시면 됩니다.

저는 웹페이지의 표시한 버전과 현재 앱의 버전이 같다면, "최신 버전입니다." 라는 토스트 메세지를 띄우고,
맞지 않다면, url로 이동되게 구현 했습니다. 이 부분은 개발자들 입맛에 맞게 수정하시면 됩니다.(다이얼로그 등등)
추천추천 : 192 추천 목록
번호 제목
1,339
 Windows10 특정 프로그램(OCS 2007 R2)에서 첨부파일 드래그앤드롭이 안 되는 현상
1,338
 윈도우 로그, 관리 이벤트 삭제
1,337
 클린 부팅
1,336
 Windows 구성 요소 저장소에서 파일 손상 검사
1,335
 Windows Defender 검사 기록 삭제하기
1,334
 간단한 윈도우 10 정품 인증 (크랙프로그램 필요없음)
1,333
 오류난 폴더 강제삭제 방법
1,332
 크롬에서 플래시 항상 허용하도록 설정하기 (레지스트리) reg 파일 만들기
1,331
 GPT 디스크를 MBR 디스크로 변환
1,330
 MBR 디스크를 GPT 디스크로 변환
1,329
 구글 검색을 200% 활용하게 해주는 검색 명령어 총정리
1,328
 [Jquery] jQuery로 우클릭 방지, 드래그 방지, 선택 방지 (IE10, 파이어폭스, 크롬 확인)
1,327
 php 사용자 접속IP, 브라우저정보, os정보, http, https 접속프로토콜 알아오기
1,326
 [PHP] IE 브라우저 접속 검출하기
1,325
 윈도우10 시스템 예약 파티션 확인 및 삭제
1,324
 윈도우10 복구 파티션 삭제 방법
1,323
 윈도우10 부팅지연 검은화면에서 몇분간 머무는 현상 해결방법
1,322
 삼성노트북 바이오스 진입이 불가능한 경우 바이오스 재설치와 NVRAM 초기화
1,321
 익스플로러(IE)의 구글 검색공급자 한글로 변경 방법
1,320
 윈도우 10 기본 앱 삭제 및 복구
1,319
 meta 태그 http-equiv 설정방법과 차이점
1,318
 구글(Google)검색에서 고급연산자를 이용하여 많은 정보를 얻는 방법
1,317
 프로그램 없이 하드디스크 복사 및 백업하기
1,316
 Windows7 업데이트 기록 삭제방법
1,315
 포토샵 psd 파일 연결 레지스트리(registry) 편집
목록
뮤직트로트 부산광역시 부산진구 가야동 ㅣ 개인정보취급방침
Copyright (C) musictrot All rights reserved.