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更新版本大概就這樣吧,想要更加了解這個類的使用,可下下功夫在百度上找找也是有很多資料的.