ȸ¿ø°¡ÀԡžÆÀ̵ð/ºñ¹øã±â
ȨÀ¸·Î


¾Û ¹öÀü üũ ½ºÅä¾î·Î À̵¿ [Android]
7³â Àü
º¸Åë ¾ÛÀÌ ¾÷±×·¹ÀÌµå µÆ¾îµµ, ´ëºÎºÐÀÇ »ç¶÷µéÀÌ ÀÚµ¿À¸·Î ¾ÈµÇ¸é ¾÷µ¥ÀÌÆ®¸¦ ÇÏÁö ¾Ê´Â´Ù.

ÀÚü¼­¹ö¸¦ »ç¿ëÇϸé 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·Î À̵¿µÇ°Ô ±¸Çö Çß½À´Ï´Ù. ÀÌ ºÎºÐÀº °³¹ßÀÚµé ÀÔ¸À¿¡ ¸Â°Ô ¼öÁ¤ÇÏ½Ã¸é µË´Ï´Ù.(´ÙÀ̾ó·Î±× µîµî)
ÃßõÃßõ : 283 Ãßõ ¸ñ·Ï
¹øÈ£ Á¦¸ñ
97
ffmpeg ¿ÀÇ ¼Ò½º on ¾Èµå·ÎÀ̵å
96
WebView¿¡¼­ <a> ű×ÀÇ "_blank" target ó¸®Çϱâ.
95
MediaPlayer 5¹ø¸¸ ¹Ýº¹Àç»ý
94
ÆÄÀÏ À§Ä¡¿¡ µû¸¥ ¹Ìµð¾î Àç»ý »ùÇÃÄÚµå
93
MJPEG on Android anyone?
92
Android °³¹ß
91
¾Èµå·ÎÀ̵å : ¾×ƼºñƼ ¶óÀÌÇÁ »çÀÌŬ (Activity Life Cycle)
90
¾Èµå·ÎÀ̵å ÇÁ·Î±×·¥ ÄÚµå·Î À¥ ºê¶ó¿ìÀú ½ÇÇàÇϱ⠿¹Á¦ (ÀÎÅÙÆ® »ç¿ë)
89
Áøµ¿ È¿°ú [Android]
88
Á¾·á ´ÙÀ̾ó·Î±× [Android]
87
´Ù¸¥¾Û È£Ãâ [Android]
86
TabActivity back key Event [Android]
85
³×Æ®¿öÅ© »óÅ [Android]
84
¾Èµå·ÎÀ̵忡¼­ À¥¼­¹ö¿¡ post·Î ±Û¾²±â [Android]
83
Webview ¼Ò½º [Android]
82
Coach mark View [Android]
81
¸ÖƼ ÇØ»óµµ [Android]
80
Webview source [Android]
79
°øÀ¯ Intent [Android]
78
intent uri ¸ðÀ½ [Android]
77
http post [Android]
76
http ¿äû [Android]
75
Android WebView Facebook Login (popup/redirection issues)
74
Loading GIF [Android]listView ¿ø°ÝÀ̹ÌÁö [Android]
¾Û ¹öÀü üũ ½ºÅä¾î·Î À̵¿ [Android]
72
WebViewClient [Android]
71
http post get Àü¼Û
70
À¥ºä ¸Þ¼Òµå È£ÃâÀÌ ¾ÈµÉ ¶§ (android.permission.INTERACT_ACROSS_USERS_FULL)
69
°³¹ß Áß ¿¡·¯ ¹ß»ý½Ã ¿¡·¯ ³»¿ë È®ÀÎ, ÇØ°á¹æ¹ý [Android]
68
ij½Ã Áö¿ì±â [Android]
¸ñ·Ï
¹ÂÁ÷Æ®·ÎÆ® ºÎ»ê±¤¿ª½Ã ºÎ»êÁø±¸ °¡¾ßµ¿ ¤Ó °³ÀÎÁ¤º¸Ãë±Þ¹æħ
Copyright ¨Ï musictrot All rights reserved.