简体   繁体   English

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

[英]Programmatically check if an Activity is declared in the AndroidManifest.xml

I want to check if an activity is declared in the app's manifest. 我想检查是否在应用程序的清单中声明了一个活动。

Some ads platform, like MMedia, Admob, etc need concret activities to be declared in your manifest. 一些广告平台,如MMedia,Admob等,需要在您的清单中声明混凝土活动。 I want to automate a test that checks if those activities has been declared. 我想自动化一个测试,检查是否已声明这些活动。 Some of this libraries throws an exception if you forget to declare the activities, other just do not work. 如果您忘记声明活动,其中一些库会抛出异常,其他只是不起作用。

For example, checking if the activity com.google.ads.AdActivity is in my manifest 例如,检查com.google.ads.AdActivity活动是否在我的清单中

Thanks 谢谢

The PackageManager contains all information of declared services, activities etc. PackageManager包含声明的服务,活动等的所有信息。

Use getInstalledPackages() with the GET_ACTIVITIES flag. getInstalledPackages()GET_ACTIVITIES标志一起使用。

If it's not in there, it's not declared. 如果不在那里,则不会声明。

Example: 例:

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... 
    }
  }
}

You can also use packageinfo: 你也可以使用packageinfo:

PackageManager pm = getPackageManager();
PackageInfo packageInfo = pm.getPackageInfo(this.getPackageName(), 0);

packageInfo.activities // contains a list of all your activity tags under <application>,

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Activity 未在 AndroidManifest.xml 中声明,即使它是 - Activity not declared in AndroidManifest.xml even if it is 活动“MainActivity”未在 AndroidManifest.xml 中声明,尽管它在那里 - The activity 'MainActivity' is not declared in AndroidManifest.xml although it is there 错误您是否在 AndroidManifest.xml 中声明了此活动? - Error have you declared this activity in your AndroidManifest.xml? 您是否在AndroidManifest.xml中声明了此活动? 登录活动 - Have you declared this activity in your AndroidManifest.xml ? LoginActivity 无法找到明确的活动类,是否已在AndroidManifest.xml中声明了该活动? - Unable to find explicit activity class have you declared this activity in your AndroidManifest.xml? Android Studio:无法找到显式活动 class 但活动已在 AndroidManifest.xml 中声明 - Android Studio: Unable to find explicit activity class but activity already declared in AndroidManifest.xml 屏幕锁定导致无法找到明确的活动类,您是否已在AndroidManifest.xml中声明了该活动? - Screen Locked causing Unable to find explicit activity class have you declared this activity in your AndroidManifest.xml? 无法找到显式活动类 {}; 您是否在 AndroidManifest.xml 中声明了此活动 - Unable to find explicit activity class {}; have you declared this activity in your AndroidManifest.xml 错误:您是否在 AndroidManifest.xml 中声明了此活动? 当试图意图上课时 - Error: have you declared this activity in your AndroidManifest.xml? when trying to intent a class 在 AndroidManifest.xml 中声明活动以使用 Intent - Declare activity in AndroidManifest.xml to use an Intent
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM