1.PackageInfo、ResolveInfo
PackageItemInfo:包含了一些信息的基类,
它的直接子类有:
ApplicationInfo、 ComponentInfo、InstrumentationInfo、PermissionGroupInfo、PermissionInfo。
它的间接子类有:
ActivityInfo、ProviderInfo、ServiceInfo。这个类包含的信息对于所有包中项目是平等的。这些Package items是被Package manager所持有的。
这个类提供了属性:label、icon和meta-data。这个类的意图不是被自己调用。它只是简单分享被PackageManager返回的所有items之间的普通定义。比如,它自己并不实现Parcelable接口,但却帮助实现了Parcelable的子类ResolveInfo提供了方便的方法。
ApplicationInfo是从一个特定的应用得到的信息。这些信息是从相对应的AndrodiManifest.xml的
PackageManager这个类是用来返回各种的关联了当前已装入设备了的应用的包的信息。你可以通过getPacageManager来得到这个类。 ApplicationInfo与ResolveInfo比较:前者能够得到Icon、Label、meta-data、description。后者只能得到Icon、Label。
具体应用实例:
通过调用PackageManager的方法可以得到两种不同的信息: PackageManager packageManager = getPackageManager(); List
它是通过解析AndroidManifest.xml的
Intent intent = new Intent(Intent.ACTION_MAIN, null);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
//通过Intent查找相关的Activity,更准确 List
//它是通过解析
一句话吧:
通过 PackageInfo 获取具体信息方法: 包名获取方法:packageInfo.packageName icon获取获取方法:packageManager.getApplicationIcon(applicationInfo) 应用名称获取方法:packageManager.getApplicationLabel(applicationInfo) 使用权限获取方法:packageManager.getPackageInfo(packageName,PackageManager.GET_PERMISSIONS).requestedPermissions 通过 ResolveInfo 获取具体信息方法: 包名获取方法:resolve.activityInfo.packageName icon获取获取方法:resolve.loadIcon(packageManager) 应用名称获取方法:resolve.loadLabel(packageManager).toString()
[java] view plain copy
print?
1. // 获取应用程序下所有Activity
2. publicstatic
3. new
4. newnull
5.
6. for0
7.
8.
9. return
10.
本文来源:https://www.2haoxitong.net/k/doc/75ca96e8cc7931b764ce15a9.html
文档为doc格式