最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android實現(xiàn)獲取應(yīng)用程序相關(guān)信息列表的方法

 更新時間:2014年07月28日 11:38:10   投稿:shichen2014  
這篇文章主要介紹了Android實現(xiàn)獲取應(yīng)用程序相關(guān)信息列表的方法,是應(yīng)用管理器常用的功能,需要的朋友可以參考下

本文所述為Androdi獲取手機(jī)應(yīng)用列表的方法,比如獲取到Android應(yīng)用的軟件屬性、大小和應(yīng)用程序路徑、應(yīng)用名稱等,獲取所有已安裝的Android應(yīng)用列表,包括那些卸載了的,但沒有清除數(shù)據(jù)的應(yīng)用程序,同時在獲取到應(yīng)用信息的時候,判斷是不是系統(tǒng)的應(yīng)用程序,這是一個應(yīng)用管理器所必需具備的功能。

具體實現(xiàn)代碼如下:

//AppInfoProvider.java
package com.xh.ui;
import java.util.ArrayList;
import java.util.List;
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.graphics.drawable.Drawable;
/**
 * 類名稱:AppInfoProvider 
 * 類描述:獲取應(yīng)用程序的相關(guān)信息
 * 創(chuàng)建人:LXH 
 */
public class AppInfoProvider {
 private PackageManager packageManager;
 //獲取一個包管理器
 public AppInfoProvider(Context context){
 packageManager = context.getPackageManager();
 }
 /**
 *獲取系統(tǒng)中所有應(yīng)用信息,
 *并將應(yīng)用軟件信息保存到list列表中。
 **/ 
 public List<AppInfo> getAllApps(){
 List<AppInfo> list = new ArrayList<AppInfo>();
 AppInfo myAppInfo;
  //獲取到所有安裝了的應(yīng)用程序的信息,包括那些卸載了的,但沒有清除數(shù)據(jù)的應(yīng)用程序 
 List<PackageInfo> packageInfos = packageManager.getInstalledPackages(PackageManager.GET_UNINSTALLED_PACKAGES);
 for(PackageInfo info:packageInfos){
  myAppInfo = new AppInfo();
  //拿到包名
  String packageName = info.packageName;
  //拿到應(yīng)用程序的信息 
  ApplicationInfo appInfo = info.applicationInfo;
  //拿到應(yīng)用程序的圖標(biāo)
  Drawable icon = appInfo.loadIcon(packageManager);
  //拿到應(yīng)用程序的大小
  //long codesize = packageStats.codeSize;
  //Log.i("info", "-->"+codesize);
  //拿到應(yīng)用程序的程序名
  String appName = appInfo.loadLabel(packageManager).toString();
  myAppInfo.setPackageName(packageName);
  myAppInfo.setAppName(appName);
  myAppInfo.setIcon(icon);
  
  if(filterApp(appInfo)){
  myAppInfo.setSystemApp(false);
  }else{
  myAppInfo.setSystemApp(true);
  }
  list.add(myAppInfo);
 }
 return list;
 }
 /**
 *判斷某一個應(yīng)用程序是不是系統(tǒng)的應(yīng)用程序,
 *如果是返回true,否則返回false。
 */ 
 public boolean filterApp(ApplicationInfo info){
 //有些系統(tǒng)應(yīng)用是可以更新的,如果用戶自己下載了一個系統(tǒng)的應(yīng)用來更新了原來的,它還是系統(tǒng)應(yīng)用,這個就是判斷這種情況的
 if((info.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0){
  return true;
 }else if((info.flags & ApplicationInfo.FLAG_SYSTEM) == 0){//判斷是不是系統(tǒng)應(yīng)用
  return true;
 }
 return false;
 }
}

與實例相關(guān)的Java類如下:

//AppInfo.java
package com.xh.ui;
import android.graphics.drawable.Drawable;
/**
 * 類名稱:AppInfo 
 * 類描述:應(yīng)用程序類,包括了程序相關(guān)屬性
 * 創(chuàng)建人:LXH 
 */
public class AppInfo {
 private Drawable icon;
 private String appName;
 private String packageName;
 private boolean isSystemApp;
 private long codesize;
 public long getCodesize() {
 return codesize;
 }
 public void setCodesize(long codesize) {
 this.codesize = codesize;
 }
 public Drawable getIcon() {
 return icon;
 }
 public void setIcon(Drawable icon) {
 this.icon = icon;
 }
 public String getAppName() {
 return appName;
 }
 public void setAppName(String appName) {
 this.appName = appName;
 }
 public String getPackageName() {
 return packageName;
 }
 public void setPackageName(String packageName) {
 this.packageName = packageName;
 }
 public boolean isSystemApp() {
 return isSystemApp;
 }
 public void setSystemApp(boolean isSystemApp) {
 this.isSystemApp = isSystemApp;
 }
}

實例中配有詳盡的注釋,讀者可以在理解程序功能的基礎(chǔ)上根據(jù)自身項目需求加以改進(jìn)和完善。

相關(guān)文章

最新評論

诸暨市| 合江县| 澎湖县| 黑水县| 涿州市| 含山县| 昌邑市| 鱼台县| 南川市| 溆浦县| 鄱阳县| 潼南县| 闽侯县| 会同县| 禹州市| 凤阳县| 玉门市| 大埔县| 保靖县| 林州市| 洪洞县| 德阳市| 金坛市| 安达市| 大宁县| 云南省| 建宁县| 泰顺县| 福贡县| 绍兴县| 晋宁县| 岢岚县| 蕉岭县| 出国| 上高县| 隆德县| 历史| 西宁市| 格尔木市| 义乌市| 闽清县|