以编程方式检查是否在AndroidManifest.xml中声明了Activity

时间:2014-02-06 13:56:58

标签: java android

我想检查是否在应用的清单中声明了某个活动。

某些广告平台,如MMedia,Admob等,需要在您的清单中声明具体活动。我想自动化一个测试,检查是否已声明这些活动。如果您忘记声明活动,其中一些库会抛出异常,其他只是不起作用。

例如,检查活动com.google.ads.AdActivity是否在我的清单

由于

1 个答案:

答案 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>,