![](/img/trans.png)
[英]How to add exported label in manifest when there is no activity tag in Android Studio?
[英]How to add the <queries> tag in the manifest?
我有这段代码,有人告诉我,对于 Android 11,我需要在清单中添加queries
标签:
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.
有人告诉我应该是这样的:
<queries>
<intent>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent>
</queries>
问题是我无法添加<category>
标签。 Android Studio 说那里不允许使用该元素。 我只能在<intent>
中添加<action>
和<data>
标记。 似乎SO上的其他人也有这个问题。 这很奇怪,因为 Android 自己的文档指示我们在那里使用<category>
标记。
<queries>
部分是在 API 30 中引入的,因此请确保仅在将此类版本向上定位时才使用它。
例如,当您想从您的应用程序中启动一些其他应用程序时,确实需要它,只知道它们的 package 名称。 否则,在使用类似packageManager.getLaunchIntentForPackage("com.yyy")
的函数时,使用 package 管理器会返回一些null
。 您可以在此处找到更多信息: Package 在 Android 11 中的可见性
在您的情况下,您可以像这样编写部分:
<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>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.