亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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)用列表,包括那些卸載了的,但沒(méi)有清除數(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)用程序的信息,包括那些卸載了的,但沒(méi)有清除數(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的開(kāi)源圖片框架Universal-Image-Loader

    全面解析Android的開(kāi)源圖片框架Universal-Image-Loader

    這篇文章主要介紹了Android的開(kāi)源圖片框架Universal-Image-Loader,Universal-Image-Loader在GitHub上開(kāi)源,其提供的圖片加載功能令人印象相當(dāng)深刻,需要的朋友可以參考下
    2016-04-04
  • Android 矢量室內(nèi)地圖開(kāi)發(fā)實(shí)例

    Android 矢量室內(nèi)地圖開(kāi)發(fā)實(shí)例

    這篇文章主要介紹了Android 矢量室內(nèi)地圖開(kāi)發(fā)實(shí)例的相關(guān)資料,這里提供代碼實(shí)例,及實(shí)現(xiàn)效果圖,矢量室內(nèi)對(duì)圖簡(jiǎn)單DEMO,需要的朋友可以參考下
    2016-11-11
  • Android實(shí)現(xiàn)隨意拖動(dòng)View效果的實(shí)例代碼

    Android實(shí)現(xiàn)隨意拖動(dòng)View效果的實(shí)例代碼

    這篇文章主要介紹了Android實(shí)現(xiàn)隨意拖動(dòng)View效果,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-07-07
  • Android實(shí)現(xiàn)音樂(lè)視頻播放

    Android實(shí)現(xiàn)音樂(lè)視頻播放

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)音樂(lè)視頻播放,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • Android應(yīng)用程序模型之應(yīng)用程序,任務(wù),進(jìn)程,線程分析

    Android應(yīng)用程序模型之應(yīng)用程序,任務(wù),進(jìn)程,線程分析

    這篇文章主要介紹了Android應(yīng)用程序模型之應(yīng)用程序,任務(wù),進(jìn)程,線程分析,較為詳細(xì)的分析了Android應(yīng)用程序模型中關(guān)于任務(wù)、進(jìn)程、線程的相關(guān)概念及注意事項(xiàng),需要的朋友可以參考下
    2016-01-01
  • Android編程獲取網(wǎng)址HTML代碼的方法

    Android編程獲取網(wǎng)址HTML代碼的方法

    這篇文章主要介紹了Android編程獲取網(wǎng)址HTML代碼的方法,涉及Android針對(duì)給定URL地址的網(wǎng)頁(yè)相關(guān)信息操作技巧,需要的朋友可以參考下
    2017-06-06
  • Android DrawerLayout布局與NavigationView導(dǎo)航菜單應(yīng)用

    Android DrawerLayout布局與NavigationView導(dǎo)航菜單應(yīng)用

    這篇文章主要介紹了Android DrawerLayout抽屜布局與NavigationView導(dǎo)航菜單應(yīng)用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧
    2023-01-01
  • android自定義WaveView水波紋控件

    android自定義WaveView水波紋控件

    這篇文章主要為大家詳細(xì)介紹了android自定義WaveView水波紋控件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • Android底部菜單簡(jiǎn)單應(yīng)用

    Android底部菜單簡(jiǎn)單應(yīng)用

    這篇文章主要為大家詳細(xì)介紹了Android底部菜單簡(jiǎn)單應(yīng)用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • Android視頻懸浮窗口實(shí)現(xiàn)的示例代碼

    Android視頻懸浮窗口實(shí)現(xiàn)的示例代碼

    這篇文章主要介紹了Android視頻懸浮窗口實(shí)現(xiàn)的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04

最新評(píng)論