首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在清单中添加<queries>标签?

如何在清单中添加<queries>标签?
EN

Stack Overflow用户
提问于 2021-04-11 16:52:36
回答 1查看 1.2K关注 0票数 2

我有以下代码,有人告诉我,对于Android11,我需要在清单中添加queries标签:

代码语言:javascript
复制
    final PackageManager pm = getPackageManager();
    Intent main = new Intent(Intent.ACTION_MAIN, null);
    main.addCategory(Intent.CATEGORY_LAUNCHER);
    List<ResolveInfo> packages = pm.queryIntentActivities(main, 0); //get a list of installed apps.

有人告诉我应该是这样的:

代码语言:javascript
复制
  <queries>
    <intent>
      <action android:name="android.intent.action.MAIN" />
      <category android:name="android.intent.category.LAUNCHER" />
    </intent>

  </queries>

问题是我不能添加<category>标签。Android Studio说该元素在那里是不允许的。我只能在<intent>中添加<action><data>标记。似乎其他人也有这个问题。这很奇怪,因为Android自己的文档指导我们在那里使用<category>标签。

EN

Stack Overflow用户

发布于 2021-10-25 10:09:45

The <queries> section is introduced in API 30,因此请确保仅当您的目标版本高于此版本时才使用它。

例如,当你想要从你的应用程序中启动一些其他应用程序时,它确实是必要的,因为你只知道它们的包名。否则,在使用像packageManager.getLaunchIntentForPackage("com.yyy")这样的函数时,使用包管理器将返回一些null。你可以在这里找到更多信息:Package visibility in Android 11

在您的示例中,您可以像这样编写该部分:

代码语言:javascript
复制
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.xxx">

    ...

    <queries>
        <intent>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent>
    </queries>

    ...

</manifest>
票数 3
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67043062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档