-
Android Version Check Thread 안드로이드 버전 체크하기프로그래밍/Android 2016. 8. 4. 13:04반응형
안드로이드 버전 체크하기
작동 방식은 HttpURLConnectoin 클래스를 이용하여 웹에서 버전 정보를 불러온 다음 안드로이드 어플리케이션의 버전이랑 확인 후 다르면 자동으로 play store로 이동 시켜주는 클래스 입니다.
질문은 댓글로 달아주세요!
버전 파일
version.txt
11.0cs Class GetVersionData.java
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768// =======================================// 버전 정보 확인// =======================================public class GetVersionData implements Runnable {@Overridepublic void run() {try {URL url = new URL("버전 정보 파일 위치(네트워크)");HttpURLConnection con = (HttpURLConnection) url.openConnection();InputStream is = con.getInputStream();BufferedReader br = new BufferedReader(new InputStreamReader(is, Charset.forName("euc-kr")));if( 버전 변수(1.0) != Double.parseDouble(br.readLine())) {// 버전이 다를 경우currentActivity.this.runOnUiThread(new Runnable() {@Overridepublic void run() {new AlertDialog.Builder(currentActivity.this).setTitle("업데이트 필요!").setMessage("프로그램을 최신 버전으로 업데이트 해주셔야 사용 가능합니다!").setCancelable(false).setPositiveButton("네", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialogInterface, int i) {currentActivity.this.runOnUiThread(new Runnable() {@Overridepublic void run() {final String appPackageName = getPackageName(); // getPackageName() from Context or Activity objecttry {startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + appPackageName)));} catch (android.content.ActivityNotFoundException anfe) {startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + appPackageName)));}currentActivity.this.finish();}});}}).setNegativeButton("아니오", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialogInterface, int i) {currentActivity.this.runOnUiThread(new Runnable() {@Overridepublic void run() {Toast.makeText(currentActivity.this, "프로그램을 종료합니다!", Toast.LENGTH_SHORT).show();currentActivity.this.finish();}});}}).show();}});} else {// 버전이 같을 경우// 다음 액티비티 실행currentActivity.this.runOnUiThread(new Runnable() {@Overridepublic void run() {Intent intent = new Intent(currentActivity.this, nextActivity.class);startActivity(intent);currentActivity.this.finish();});}} catch ( Exception e ) { }}}cs 위의 클래스는 currentActivity 내부 클래스로 선언 했기 때문에 currentActivity.this 를 사용하였지만, 외부 클래스로 빼 낼 경우에는 currentActivity.this 대신에 new GetVersionData(Activity activity) 형식으로 받아 와서 대체 해주어야 합니다! 그래도 모르시겠다면 댓글 주세요!currentActivity.java
1234567891011public class currentActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.current_activity);Thread th = new Thread(new GetVersionData());th.start();}}cs currentActivity 와 nextActivity는 본인의 코드에 맞게 수정해주시면 됩니다.
반응형'프로그래밍 > Android' 카테고리의 다른 글
위도 경도 길이 구하기 (0) 2018.04.09 안드로이드 유용한 라이브러리 (0) 2016.12.05 Android Version Check Thread 안드로이드 버전 체크하기 (0) 2016.08.04 TAG