【问题标题】:Check if Activity is Launcher from ActivityInfo/PackageManager检查 Activity 是否是来自 ActivityInfo/PackageManager 的 Launcher
【发布时间】:2014-08-09 15:36:33
【问题描述】:

我需要检查已安装的应用是否具有特定的启动器活动类(基于应用的包名称)。

我可以通过以下方式获取活动列表并找到正确的课程:

PackageInfo info = context.getPackageManager().getPackageInfo(packageName, PackageManager.GET_ACTIVITIES);

for (ActivityInfo a : info.activities) {
    if (a.name.compareTo("specific class name") == 0)

        // if a is launcher activity
            return true;
    }

但我似乎找不到任何方法来检查活动是否真的是启动器。

有没有办法从清单文件中获取有关与活动关联的意图过滤器的信息?

【问题讨论】:

标签: android android-package-managers


【解决方案1】:

从以下所有应用中获取启动器活动列表

        final PackageManager pm = getPackageManager();
        // package manager is provider of all the application information
        Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
        mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);

        List<ResolveInfo> appList = pm.queryIntentActivities(mainIntent, 0);

        for (ResolveInfo info : appList) {

            Log.d("package and activity name = "
                    + info.activityInfo.packageName + "    "
                    + info.activityInfo.name);


        }

【讨论】:

    【解决方案2】:

    您可以使用以下方法检查应用是否具有启动器活动:

    (context.packageManager.getLaunchIntentForPackage(app_package_name) != null)

    【讨论】:

      猜你喜欢
      • 2013-06-25
      • 2012-07-28
      • 2019-09-18
      • 2012-08-23
      • 2014-05-25
      • 1970-01-01
      • 2023-02-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多