[英]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.