packageManager 获取package信息

简单整理一下packageManager的几个获取包信息的方法。下面的都是自己试验出来的

 

 

	/**
	 * 获取本机中所有在AndroidManefest.xml中定义过的Activity的所有信息,包括permission,theme,name等等
	 * 只要是在AndroidManefest.xml中的<Activity>标签中能填写的属性,这里就可以获取。由ActivityInfo的源码得知
	 * toString函数只是打印了一个activity的编号和他的名字。
	 * 
	 */
	private void showActivityInfo() {
		for (PackageInfo pack : getPackageManager().getInstalledPackages(
				PackageManager.GET_ACTIVITIES)) {
			ActivityInfo[] activityInfos = pack.activities;
			// Log.d(TAG, "pack.packageName =qqqq= " + pack.packageName
			// + "  pack.versionName =qqqq= " + pack.versionName
			// + "  versionCode ==qqq= " + pack.versionCode);
			if (activityInfos != null) {
				for (ActivityInfo activityInfo : activityInfos) {
					Log.d(TAG, "activityInfos: " + activityInfo.toString()
							+ "    permission: " + activityInfo.permission);
				}
			}
		}
	}

	/**
	 * 获取所有应用在AndroidManefest.xml中定义的Provider的信息,包括authority等。 与showActivity类似
	 */
	private void showProviderInfo() {
		for (PackageInfo pack : getPackageManager().getInstalledPackages(
				PackageManager.GET_PROVIDERS)) {
			ProviderInfo[] providerInfos = pack.providers;
			// Log.d(TAG, "pack.packageName == " + pack.packageName
			// + "  pack.versionName == " + pack.versionName
			// + "  versionCode === " + pack.versionCode);
			if (providerInfos != null) {
				for (ProviderInfo providerInfo : providerInfos) {
					Log.d(TAG, "providerInfo: " + providerInfo.toString()
							+ "    authority: " + providerInfo.authority);
				}
			}
		}
	}
/**
*  获取手机中所有包,并打印出这些包都用到了哪些permission
*/
	private void showPermission() {
		for (PackageInfo pack : getPackageManager().getInstalledPackages(
				PackageManager.GET_PERMISSIONS)) {
			if (pack.requestedPermissions != null) {
				Log.d(TAG, "*******************************************");
				Log.d(TAG, "pack.packageName: " + pack.packageName);
				for (String per : pack.requestedPermissions) {
					Log.d(TAG, "permission ----- > " + per);
				}
			}
		}
	}
 
此乃原创,转载请注明出处。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值