Android实现获取系统应用列表

上传人:m**** 文档编号:472796106 上传时间:2023-06-20 格式:DOCX 页数:12 大小:172.40KB
返回 下载 相关 举报
Android实现获取系统应用列表_第1页
第1页 / 共12页
Android实现获取系统应用列表_第2页
第2页 / 共12页
Android实现获取系统应用列表_第3页
第3页 / 共12页
Android实现获取系统应用列表_第4页
第4页 / 共12页
Android实现获取系统应用列表_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《Android实现获取系统应用列表》由会员分享,可在线阅读,更多相关《Android实现获取系统应用列表(12页珍藏版)》请在金锄头文库上搜索。

1、Android实现获取系统应用列表本文介绍在Android中如何获取系统应用程序列表。Android系统为我们提供了很多服务管理的类,包括ActivityManager、PowerManager(电源管 理)、AudioManager(音频管理)等。除此之外,还提供了一个PackageManger管理类,它的主 要职责是管理应用程序包。通过它,我们就可以获取应用程序信息。PackageManager 的功能:安装,卸载应用查询permission相关信息查询 Application 相关信息(application, activity,receiver, service,provider 及相

2、应属性等)查询已安装应用增加,删除permission清除用户数据、缓存,代码段等我们可以用PackageManager来显示系统安装的应用程序列表或者系统程序列表相关类的介绍Packageiteminfo 类说明:AndroidManifest.xml文件中所有节点的基类,提供了这些节点的基本信息:a label、icon、 meta-data。它并不直接使用,而是由子类继承然后调用相应方法。常用字段:public int icon获得该资源图片在R文件中的值(对应于android:icon属性)public int labelRes获得该label在R文件中的值(对应于android:la

3、bel属性)public String name 获得该节点的name值(对应于android:name属性)public String package name 获得该应用程序的包名(对应于andro id: package name属性) 常用方法:Dr awable loadIco n(PackageMa nager pm)获得当前应用程序的图像CharSequenee loadLabel(PackageManager pm)获得当前应用程序的 labelActivityinfo 类继承自 PackageltemInfo说明:获得应用程序中activity/或者vreceiver /节点

4、的信息。我们可以通过它来获取我们设置的任何属性,包括theme、launchMode、launchmode等常用方法继承至 PackageItemInfo 类中的 loadIcon()和 loadLabel()Serviceinfo 类说明:同ActivityInfo类似,同样继承自PackageItemInfo,只不过它表示的是vservice节 点信息。Applicationinfo 类继承自 PackageItemInfo说明:获取一个特定引用程序中v applicatio n节点的信息。字段说明:flags字段:FLAG_SYSTEM系统应用程序FLAG_EXTERNAL_STORAG

5、E 表示该应用安装在sdcard中常用方法继承至 PackageItemInfo 类中的 loadIcon()和 loadLabel()Resolveinfo 类说明:根据vintent节点来获取其上一层目录的信息,通常是v activity、v receive r、vse rvice 节点信息。常用字段:public Activity Info activity Info 获取 Activity Info 对象,即 v activity 或vr eceive r 节点信息public Ser vice Info ser viceI nfo 获取 Ser viceI nfo 对象,即 v ac

6、tivity 节点信息常用方法:Dr awable loadIco n(PackageMa nager pm)获得当前应用程序的图像CharSequenee loadLabel(PackageManager pm)获得当前应用程序的 labelPackageinfo 类说明:手动获取AndroidManifest.xml文件的信息。常用字段:public St ring packageName 包名public ActivityInfo activities 所有vactivity节点信息public Applicatio nlnfo applicati onlnfo vapplicati o

7、n 节点信息,只有一个public Activity In fo r eceive rs 所有 vr eceive r 节点信息,多个public Ser vice Info ser vices 所有 vse rvice 节点信息,多个PackageManger 类说明:获得已安装的应用程序信息。可以通过getPackageManager()方法获得。常用方法:public abst ract PackageMa nage r getPackageMa nage r()功能:获得一个PackageManger对象public abst rac tDr awable getApplicati o

8、n Ic on(Strin gpackageName)参数:packageName包名功能:返回给定包名的图标,否则返回nullpublic abst ract Applicati onlnfo getApplicati onIn fo(St ring packageName, i nt flags)参数:package name包名flags该Applicatio nInfo是此flags标记,通常可以直接赋予常数0即可功能:返回该ApplicationInfo对象public abst ract ListvApplicatio nInfo get In stalledApplicati o

9、n s(i nt flags)参数:flag 为一般为 GET_UNINSTALLED_PACKAGES,那么此时会返回所有 ApplicationInfo。我们可以对ApplicationInfo的flags过滤,得到我们需要的。功能:返回给定条件的所有Packagelnfopublic abst ract ListvPackage Info get In stalledPackages(i nt flags)参数如上功能:返回给定条件的所有PackageInfopublic abst ractResolve Info r esolveActivity(I ntent inten t, i

10、nt flags)参数:intent 查寻条件,Activity 所配置的 action 和 category flags:MATCH_DEFAULT_ONLY : Category 必须带有 CATEGORY_DEFAULT的 Activity,才匹配GET_INTENT_FILTERS :匹配 Intent 条件即可 GET_RESOLVED_FILTER :匹配 Intent 条件 即可功能:返回给定条件的ResolveInfo对象(本质上是Activity)public abst ract List que ryInten tActivities(I ntent in te nt, i

11、 nt flags)参数同上功能:返回给定条件的所有ResolveInfo对象(本质上是Activity),集合对象public abst ract Resolve Info r esolveSe rvice( Intent inten t, i nt flags)参数同上功能:返回给定条件的ResolveI nfo对象(本质上是Ser vice)public abst ract List que ryInten tSe rvices(I ntent in te nt, i nt flags)参数同上功能:返回给定条件的所有ResolveI nfo对象(本质上是Ser vice),集合对象运行

12、示例如下图所示:项目工程结构图:丿呂 MyAndroidPackManager丿曲 com. m a n a g er.test弟sfefefe-! JJ MainActivity.java gen Generated Java Files Android 2,2assetsbin 凸 drawsble-hdpi l 凸 d rawable-Id pi l D drawsble-mdpi 丿凸layoutlist_iteim;”,main.xml丿 D values;”,strings.xmliCl | An d ro i d M a n ifest.xm I proguard.cfg園 pr

13、oject.propertiesMai nActivity:package com.manager.test;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.app.Activity;import android.content.Context;import android.content.pm.ApplicationInfo;import android.content.pm.PackageInfo;import andr

14、oid.content.pm.PackageManager;import android.graphics.drawable.Drawable;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import android.widget.ListView;import android.widget.SimpleAdapter;import android

15、.widget.TextView;/*使用PackManager示例* Description:获取Android系统应用程序* FileName: MainActivity.java* Package com.manager.test* Version V1.0*/public class MainActivity extends Activity private Listview lv;private MyAdapter adapter;ArrayListHashMapString, Object items = new ArrayListHashMapString, Object();Overridepublic void onCreate(Bundle savedInstanceState) super.onCreate(savedlnstanceState);setContentView(R.layout.main);lv = (ListView)findVi

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 建筑资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号