青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

life02

  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
  197 隨筆 :: 3 文章 :: 37 評論 :: 0 Trackbacks

Android獲取已安裝應用信息(圖標,名稱,版本號,包)

Android 菜市場上有一款應用較 ShareApp,可以顯示,管理,分享Android手機上安裝的應用。

 

http://www.cnblogs.com/mainroadlee/archive/2011/05/23/android_get_installed_app.html

 

但比較不爽的是,它把很多系統自帶的應用程序也都顯示了出來。這些程序往往是無法卸載的,更無法分享,讓“已安裝應用程序”的列表顯的非常凌亂。

我在手機上運行了一下,結果Gtalk,DRMService這些系統應用都顯示出來了..比較不爽。

于是自己寫了個程序,看看能不能只顯示用戶自己安裝的程序。

程序大概分成三個部分:

1.獲取手機已安裝的所有應用package的信息(其中包括用戶自己安裝的,還有系統自帶的);

2.濾除系統自帶應用;

3.通過列表顯示出應用程序的圖標(icon),和其他文字信息(應用名稱,包名稱package name,版本號等等)

首先,我們定義一個數據結構,來保存應用程序信息(icon,name,packageName,versionName,versionCode,等)

public class AppInfo {
public String appName="";
public String packageName="";
public String versionName="";
public int versionCode=0;
public Drawable appIcon=null;
public void print()
{
Log.v(
"app","Name:"+appName+" Package:"+packageName);
Log.v(
"app","Name:"+appName+" versionName:"+versionName);
Log.v(
"app","Name:"+appName+" versionCode:"+versionCode);
}

}

然后我們通過PackageManager 來獲取已安裝的應用包信息。

     ArrayList<AppInfo> appList = new ArrayList<AppInfo>(); //用來存儲獲取的應用信息數據
     List<PackageInfo> packages = getPackageManager().getInstalledPackages(0);

for(int i=0;i<packages.size();i++) {
PackageInfo packageInfo
= packages.get(i);
AppInfo tmpInfo
= new AppInfo();
tmpInfo.appName
= packageInfo.applicationInfo.loadLabel(getPackageManager()).toString();
tmpInfo.packageName
= packageInfo.packageName;
tmpInfo.versionName
= packageInfo.versionName;
tmpInfo.versionCode
= packageInfo.versionCode;
tmpInfo.appIcon
= packageInfo.applicationInfo.loadIcon(getPackageManager());
appList.add(tmpInfo);

}
//好啦 這下手機上安裝的應用數據都存在appList里了。

那么如何判斷一個應用是否為系統應用呢?

if((packageInfo.applicationInfo.flags&ApplicationInfo.FLAG_SYSTEM)==0)
{
//非系統應用
}
else
{
//系統應用        
}

所以如果只需要獲取到非系統應用信息,代碼如下:

ArrayList<AppInfo> appList = new ArrayList<AppInfo>(); //用來存儲獲取的應用信息數據
List<PackageInfo> packages = getPackageManager().getInstalledPackages(0);

for(int i=0;i<packages.size();i++) {
PackageInfo packageInfo
= packages.get(i);
AppInfo tmpInfo
= new AppInfo();
tmpInfo.appName
= packageInfo.applicationInfo.loadLabel(getPackageManager()).toString();
tmpInfo.packageName
= packageInfo.packageName;
tmpInfo.versionName
= packageInfo.versionName;
tmpInfo.versionCode
= packageInfo.versionCode;
tmpInfo.appIcon
= packageInfo.applicationInfo.loadIcon(getPackageManager());
//Only display the non-system app info
if((packageInfo.applicationInfo.flags&ApplicationInfo.FLAG_SYSTEM)==0)
{
appList.add(tmpInfo);//如果非系統應用,則添加至appList
}

}

最后,我們可以自定義一個app_row.xml的layout 文件,用來顯示appList中的數據

是不是看著利索多了~~~(我在每行里只顯示了icon 和 appName,你也可以修改app_row.xml 和 AppAdapter 部分后顯示更多的信息)

大家可以參考我的源碼:

源碼下載地址:
http://www.everbox.com/f/cV98GFipIUHV34WOmXNdemQ6Vm 

我的聯系方式:

twitter: @mainroadlee 

http://twitter.com/#!/mainroadlee

talkbox id:mainroadlee


參考:

1. [Android分享] Android 得到已安裝的應用程序信息 

http://www.eoeandroid.com/thread-67948-1-1.html

該文中描述了如何獲取Android 已安裝應用信息,但關于系統應用的判斷部分存在錯誤。

2. Android中級篇之區分系統程序和安裝程序

http://blog.csdn.net/y13872888163/archive/2011/05/20/6435618.aspx

posted on 2012-03-15 09:24 life02 閱讀(342) 評論(0)  編輯 收藏 引用 所屬分類: Android開發
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲第一视频网站| 免费美女久久99| 最新国产成人在线观看| 亚洲第一精品电影| 欧美成人自拍视频| 欧美三级视频在线观看| 免费在线观看精品| 欧美精品色一区二区三区| 欧美精品乱码久久久久久按摩| 久久久久九九九| 久久久久久久久久久久久9999| 久久精品视频在线| 免费看成人av| 欧美精选一区| 国产精品白丝av嫩草影院| 国产精品黄页免费高清在线观看| 国产精品视频免费观看www| 国产在线不卡精品| 亚洲黄色高清| 一本高清dvd不卡在线观看| 亚洲一级黄色| 久久伊人亚洲| 99视频精品| 欧美一级艳片视频免费观看| 美女精品国产| 国产精品久久久久毛片软件| 国产香蕉久久精品综合网| 亚洲精品国产精品久久清纯直播| 国产精品99久久久久久久久久久久| 欧美淫片网站| 91久久综合亚洲鲁鲁五月天| 亚洲香蕉在线观看| 免费日韩一区二区| 国产视频一区欧美| 中国女人久久久| 免费看黄裸体一级大秀欧美| 亚洲作爱视频| 久久一区二区三区四区| 国产精品网站在线| 亚洲精品久久久久久下一站| 欧美在线观看一二区| 亚洲欧洲精品一区二区三区| 久久久久久九九九九| 国产精品亚洲一区二区三区在线| 亚洲激情午夜| 乱码第一页成人| 亚洲制服av| 国产精品wwwwww| 日韩亚洲欧美一区二区三区| 模特精品在线| 欧美中文字幕| 国产视频欧美| 久久精品国产一区二区三| 洋洋av久久久久久久一区| 欧美精品色综合| 亚洲精品日韩精品| 亚洲福利一区| 欧美国产第二页| 亚洲欧洲精品一区二区三区不卡 | 亚洲欧美另类在线观看| 欧美韩日亚洲| 亚洲精品久久视频| 欧美成人午夜激情| 麻豆精品传媒视频| 在线免费观看一区二区三区| 久久黄金**| 午夜精品福利一区二区蜜股av| 国产精品美女久久久免费| 亚洲一区二区黄| 亚洲一区二区精品| 国产日韩精品一区二区三区 | 男女精品网站| 久久青草福利网站| 亚洲国产视频a| 欧美激情第4页| 欧美精品不卡| 亚洲视频1区| 亚洲视频欧洲视频| 国产乱子伦一区二区三区国色天香| 亚洲一二三区视频在线观看| 亚洲视频欧洲视频| 国产三级欧美三级| 欧美18av| 欧美三级在线| 久久久999精品免费| 久久精品网址| 亚洲精品日韩综合观看成人91| 亚洲高清123| 欧美三级乱人伦电影| 午夜亚洲福利| 噜噜爱69成人精品| 亚洲图片欧美日产| 翔田千里一区二区| 亚洲第一在线视频| 最新国产拍偷乱拍精品| 欧美亚洲第一页| 久久女同互慰一区二区三区| 欧美国产专区| 久久久久久夜| 欧美777四色影视在线| 午夜久久电影网| 久热精品视频在线免费观看| 亚洲天堂成人在线视频| 亚洲综合清纯丝袜自拍| 在线精品亚洲| 亚洲性图久久| 亚洲精品日产精品乱码不卡| 先锋影音网一区二区| 欧美在线观看日本一区| 亚洲欧洲精品成人久久奇米网 | 国产精品久久久久久久久久免费看 | 国产欧美一区二区精品性| 欧美电影专区| 国产情人节一区| 亚洲精品影视在线观看| 国内成人自拍视频| 一区二区三区免费网站| 亚洲国产成人高清精品| 亚洲欧美视频在线观看视频| 亚洲精品一区在线观看| 欧美在线影院| 欧美一区二区三区视频| 欧美日韩一区二区三区四区五区| 久久久久久久网站| 国产精品视频男人的天堂| 亚洲欧洲另类国产综合| 影音先锋国产精品| 午夜精品短视频| 亚洲欧美福利一区二区| 欧美日本二区| 亚洲精品1区| 伊人久久综合97精品| 亚洲欧美日韩天堂一区二区| 亚洲一区二区三区中文字幕| 欧美精品在线一区二区三区| 亚洲国产精品专区久久| 在线欧美视频| 久久久人成影片一区二区三区| 欧美在线三区| 国产欧美日韩综合一区在线播放| 亚洲一区二区在线播放| 性欧美超级视频| 国产精品美女黄网| 亚洲欧美日韩一区| 久久久国产一区二区| 国内激情久久| 老**午夜毛片一区二区三区| 另类av一区二区| 亚洲第一福利在线观看| 免费观看成人| 亚洲国产日韩在线一区模特| 一区二区电影免费观看| 欧美日韩在线直播| 亚洲无亚洲人成网站77777 | 欧美高清在线| 亚洲日本中文字幕| 欧美激情精品久久久久久大尺度| 亚洲人成网站在线观看播放| 在线一区观看| 国产日韩成人精品| 久热国产精品| 亚洲黄色在线视频| 亚洲你懂的在线视频| 国产精品毛片va一区二区三区 | 一区二区三区www| 欧美网站在线| 欧美一区不卡| 亚洲国产成人不卡| 午夜亚洲福利在线老司机| 国产在线不卡视频| 欧美激情黄色片| 一道本一区二区| 久久综合色婷婷| 国产精品99久久久久久人| 国产欧美精品国产国产专区| 久久免费精品视频| 在线视频日韩| 久久精品亚洲乱码伦伦中文| 在线成人中文字幕| 欧美色综合网| 久久精品一区二区国产| 亚洲精品久久久久久久久| 久久精品色图| 一本久道久久久| 激情久久久久久久久久久久久久久久| 免费成人美女女| 亚洲欧美成人| 亚洲国产精选| 久久综合给合久久狠狠色| 在线午夜精品自拍| 亚洲福利一区| 国产亚洲一区二区在线观看| 欧美日韩视频| 欧美xxx在线观看| 性一交一乱一区二区洋洋av| 亚洲经典自拍| 亚洲成人直播| 久久久天天操| 欧美一区二区三区婷婷月色| 一区二区三区免费观看|