获取系统上可用的所有活动的列表

Don*_*Gru 3 android android-activity

由于系统应该知道可用的活动,因为它们是AndroidManifest.xml在安装期间评估的相应文件中声明的:
有没有办法查询这些活动?

Ido*_*lon 8

当然,看看PackageManager.getInstalledPackages方法.以下是打印已注册活动名称的示例:

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... 
    }
  }
}
Run Code Online (Sandbox Code Playgroud)