91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

App應用的通用功能

發布時間:2020-06-24 05:57:50 來源:網絡 閱讀:542 作者:androidlinyk 欄目:開發技術

     App中有很多通用的功能,如設置模塊,有緩存、無圖模式、版本更新等一些通用的功能,與大家分享一下其中的版本檢查更新,在我們的App中能自動檢查更新升級。

     首先我們要先獲得我們應用當前版本,接著從服務器獲得應用的最新版本,兩個一比較如果最新版本高于當前版本就同升級更新。


    代碼實現:

    獲得當前版本:

    

public static int getCurrVersion(Context context){

PackageManager pm = context.getPackageManager();

try {

PackageInfo info = pm.getPackageInfo(context

.getPackageName(), 0);

return info.versionCode;

} catch (NameNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return 0;

}

    從服務器獲得最新版本:

    

public static UpdataInfo getUpdataInfo(InputStream is) throws Exception{     

  XmlPullParser  parser = Xml.newPullParser();       

   parser.setInput(is, "utf-8");//設置解析的數據源       7.    int type = parser.getEventType();     

   UpdataInfo info = new UpdataInfo();//實體      9.    while(type != XmlPullParser.END_DOCUMENT ){     

       switch (type) {     

      case XmlPullParser.START_TAG:     

          if("version".equals(parser.getName())){     

               info.setVersion(parser.nextText()); //獲取版本號                  }else if ("url".equals(parser.getName())){     

               info.setUrl(parser.nextText()); //獲取要升級的APK文件                  }else if ("description".equals(parser.getName())){     

              info.setDescription(parser.nextText()); //獲取該文件的信息      18.            }     

         break;     

      }     

       type = parser.next();     

  }     

   return info;     

}

從服務器下載apk:   

1.public static File getFileFromServer(String path, ProgressDialog pd) throws Exception{     

    //如果相等的話表示當前的sdcard掛載在手機上并且是可用的      

  if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){     

        URL url = new URL(path);     

        HttpURLConnection conn =  (HttpURLConnection) url.openConnection();     

        conn.setConnectTimeout(5000);     

        //獲取到文件的大小       

        pd.setMax(conn.getContentLength());     

        InputStream is = conn.getInputStream();     

        File file = new File(Environment.getExternalStorageDirectory(), "updata.apk");     

        FileOutputStream fos = new FileOutputStream(file);     

        BufferedInputStream bis = new BufferedInputStream(is);     

        byte[] buffer = new byte[1024];     

        int len ;     

        int total=0;     

        while((len =bis.read(buffer))!=-1){     

            fos.write(buffer, 0, len);     

            total+= len;     

            //獲取當前下載量      

            pd.setProgress(total);     

        }     

.        fos.close();     

        bis.close();     

        is.close();     

        return file;     

    }     

    else{     

.        return null;     

    }     

然后進行安裝

protected void installApk(File file) {    

    Intent intent = new Intent();    

    //執行動作     

    intent.setAction(Intent.ACTION_VIEW);    

    //執行的數據類型     

    intent.setDataAndType(Uri.fromFile(file), "application/vnd.Android.package-archive");//      

    startActivity(intent);    

}    



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宿州市| 射洪县| 乐都县| 高安市| 班戈县| 喜德县| 独山县| 杭州市| 竹北市| 铜鼓县| 陇川县| 隆回县| 正宁县| 江都市| 察雅县| 南和县| 于都县| 岳池县| 邮箱| 本溪市| 泸溪县| 来安县| 日喀则市| 获嘉县| 凤庆县| 桃江县| 武平县| 商城县| 始兴县| 任丘市| 白银市| 邮箱| 噶尔县| 东台市| 达拉特旗| 晋城| 九龙县| 抚顺市| 丁青县| 津市市| 苏尼特左旗|