android 利用packageManager更新版本

Android系統爲我們提供了很多服務管理類,包括ActivityManager、PowerManager(電源管理)、AudioManager(音頻管理)。PackageManager主要是管理應用程序包,通過它就可以獲取應用程序信息。同時,我們還可以通過PackageManager來更新我們的應用程序的版本。
常用方法:
1.
//獲得已安裝的應用程序信息 。可以通過getPackageManager()方法獲得。
例如:PackageManager manager = context.getPackageManager();

2.
public abstract Drawable getApplicationIcon(String packageName)
參數: packageName 包名
功能:返回給定包名的圖標,否則返回null

PackageItemInfo類
說明: AndroidManifest.xml文件中所有節點的基類,提供了這些節點的基本信息:label、icon、 meta-data。它並不直接使用,而是由子類繼承然後調用相應方法。
PackageInfo info = manager.getPackageInfo(context.getPackageName(),
0);
下面提供一段我項目中更新版本的代碼

// 更新版本
public static Version upVersion(Context context) {
try {
//獲取安裝程序的應用信息
PackageManager manager = context.getPackageManager();
PackageInfo info = manager.getPackageInfo(context.getPackageName(),
0);
//創建請求參數
List < BasicNameValuePair> params = new LinkedList < BasicNameValuePair>();
params.add(new BasicNameValuePair(“version”, String
.valueOf(info.versionName)));
String rst = HttpNetService.httpClientPost(AppValues.UPVERSION,
params);
if (rst != null) {
Version v = new Version();
v.setRst(false);
JSONObject rs = new JSONObject(rst);
v.setRst(rs.getBoolean(“rst”));
v.setProduct(rs.getString(“product”));
v.setUpdates(rs.getString(“updates”));
v.setVersion(rs.getString(“version”));
v.setUploadtime(rs.getString(“uploadtime”));
v.setOtherinfo(rs.getString(“otherinfo”));
return v;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
//請求更新的httpClientPost函數
public static String httpClientPost(String baseUrl,List params ){
try {

        HttpPost postMethod = new HttpPost(baseUrl);   
        postMethod.setEntity(new UrlEncodedFormEntity(params, "utf-8")); //將參數填入POST Entity中   
        HttpClient httpClient = new DefaultHttpClient();
        HttpResponse response = httpClient.execute(postMethod);                             
        if(response.getStatusLine().getStatusCode()==200){
            return EntityUtils.toString(response.getEntity(),"utf-8");              
        }   
    } catch (UnsupportedEncodingException e) {                
            e.printStackTrace();   
    }catch (ClientProtocolException e) {      
        e.printStackTrace();   
    } catch (IOException e) {      
        e.printStackTrace();   
    }       
    return null;    
}
其中Version類是版本的相關信息,例如當前版本,更新時間等
PackageManager更新版本大概就這樣吧,想要更加了解這個類的使用,可下下功夫在百度上找找也是有很多資料的.
發佈了26 篇原創文章 · 獲贊 9 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章