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

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

 更新時(shí)間:2014年07月28日 11:38:10   投稿:shichen2014  
這篇文章主要介紹了Android實(shí)現(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)用程序,同時(shí)在獲取到應(yīng)用信息的時(shí)候,判斷是不是系統(tǒng)的應(yīng)用程序,這是一個(gè)應(yīng)用管理器所必需具備的功能。

具體實(shí)現(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;
 //獲取一個(gè)包管理器
 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;
 }
 /**
 *判斷某一個(gè)應(yīng)用程序是不是系統(tǒng)的應(yīng)用程序,
 *如果是返回true,否則返回false。
 */ 
 public boolean filterApp(ApplicationInfo info){
 //有些系統(tǒng)應(yīng)用是可以更新的,如果用戶自己下載了一個(gè)系統(tǒng)的應(yīng)用來(lái)更新了原來(lái)的,它還是系統(tǒng)應(yīng)用,這個(gè)就是判斷這種情況的
 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;
 }
}

與實(shí)例相關(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;
 }
}

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

相關(guān)文章

  • Android遞歸方式刪除某文件夾下的所有文件(.mp3文件等等)

    Android遞歸方式刪除某文件夾下的所有文件(.mp3文件等等)

    以刪除為例,當(dāng)然,對(duì)于遍歷某文件夾下的所有文件均可用這個(gè)方法。如搜索.mp3文件等,具體實(shí)現(xiàn)如下,感興趣的朋友可以參考下哈
    2013-06-06
  • android使用NotificationListenerService監(jiān)聽通知欄消息

    android使用NotificationListenerService監(jiān)聽通知欄消息

    本篇文章主要介紹了android使用NotificationListenerService監(jiān)聽通知欄消息,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-01-01
  • Android實(shí)現(xiàn)藍(lán)牙客戶端與服務(wù)器端通信示例

    Android實(shí)現(xiàn)藍(lán)牙客戶端與服務(wù)器端通信示例

    這篇文章主要介紹了Android實(shí)現(xiàn)藍(lán)牙客戶端與服務(wù)器端通信示例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-01-01
  • 仿Iphone中搜索結(jié)果的布局詳解

    仿Iphone中搜索結(jié)果的布局詳解

    本篇文章是對(duì)仿Iphone中搜索結(jié)果的布局進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • Android編程之播放器MediaPlayer實(shí)現(xiàn)均衡器效果示例

    Android編程之播放器MediaPlayer實(shí)現(xiàn)均衡器效果示例

    這篇文章主要介紹了Android編程之播放器MediaPlayer實(shí)現(xiàn)均衡器效果,結(jié)合具體實(shí)例形式分析了Android調(diào)用MediaPlayer相關(guān)API構(gòu)造均衡器的具體步驟與相關(guān)功能實(shí)現(xiàn)方法,需要的朋友可以參考下
    2017-08-08
  • Android實(shí)現(xiàn)可拖動(dòng)層疊卡片布局

    Android實(shí)現(xiàn)可拖動(dòng)層疊卡片布局

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)可拖動(dòng)層疊卡片布局,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • Android編程之OpenGL繪圖技巧總結(jié)

    Android編程之OpenGL繪圖技巧總結(jié)

    這篇文章主要介紹了Android編程之OpenGL繪圖技巧,結(jié)合實(shí)例形式總結(jié)分析了Android基于OpenGL繪圖的原理與具體步驟,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-11-11
  • Android實(shí)現(xiàn)的秒表計(jì)時(shí)器示例

    Android實(shí)現(xiàn)的秒表計(jì)時(shí)器示例

    這篇文章主要介紹了Android實(shí)現(xiàn)的秒表計(jì)時(shí)器,結(jié)合完整實(shí)例形式分析了Android計(jì)時(shí)器的具體實(shí)現(xiàn)步驟與相關(guān)技巧,涉及Android針對(duì)日期與時(shí)間的操作方法,需要的朋友可以參考下
    2016-08-08
  • Android通過bin二進(jìn)制程序調(diào)用jar原理

    Android通過bin二進(jìn)制程序調(diào)用jar原理

    最近在研究monkey測(cè)試,發(fā)現(xiàn)monkey測(cè)試的代碼都是JAVA編寫的,通過編譯生成jar包,而我們?cè)趫?zhí)行測(cè)試時(shí)直接執(zhí)行/system/bin/monkey這個(gè)二進(jìn)制程序的,那么它是如何能調(diào)起java程序的呢,本文小編給大家介紹了Android通過bin二進(jìn)制程序調(diào)用jar原理,需要的朋友可以參考下
    2023-10-10
  • Android調(diào)用攝像頭拍照開發(fā)教程

    Android調(diào)用攝像頭拍照開發(fā)教程

    這篇文章主要為大家詳細(xì)介紹了Android調(diào)用攝像頭拍照的開發(fā)教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04

最新評(píng)論

郴州市| 五河县| 浦东新区| 桓仁| 加查县| 天门市| 大埔区| 石渠县| 禹城市| 霸州市| 托里县| 平昌县| 宝鸡市| 临洮县| 平武县| 广平县| 丰镇市| 阜城县| 广平县| 东阿县| 和平县| 岚皋县| 毕节市| 怀宁县| 湾仔区| 泗洪县| 盐山县| 抚宁县| 日喀则市| 莒南县| 呼和浩特市| 江源县| 宜川县| 皮山县| 黄山市| 大安市| 拜城县| 商水县| 雷山县| 龙州县| 民乐县|