我想检查是否在应用的清单中声明了某个活动。
某些广告平台,如MMedia,Admob等,需要在您的清单中声明具体活动。我想自动化一个测试,检查是否已声明这些活动。如果您忘记声明活动,其中一些库会抛出异常,其他只是不起作用。
例如,检查活动com.google.ads.AdActivity
是否在我的清单
由于
答案 0 :(得分:2)
PackageManager包含已声明服务,活动等的所有信息。
将getInstalledPackages()
与GET_ACTIVITIES
标记一起使用。
如果它不存在,则不会声明。
示例:
List<PackageInfo> pInfos = getPackageManager().getInstalledPackages(PackageManager.GET_ACTIVITIES);
for (PackageInfo pInfo : pInfos) {
ActivityInfo[] aInfos = pInfo.activities;
if (aInfos != null) {
for (ActivityInfo activityInfo : aInfos) {
Log.i("ACT", activityInfo.name);
// do whatever else you like...
}
}
}
您也可以使用packageinfo:
PackageManager pm = getPackageManager();
PackageInfo packageInfo = pm.getPackageInfo(this.getPackageName(), 0);
packageInfo.activities // contains a list of all your activity tags under <application>,