如何在 android 10(Q) 中删除启动器图标

kri*_*ree 5 android visibility appicon android-10.0

在 API 29 之前,我们可以通过删除来删除设备中的启动器图标

<intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)

在清单文件中。

如前所述这里

从 Android Q 开始,除非应用至少满足以下条件之一,否则返回列表中至少会出现应用的 Activity 或合成 Activity 之一:

  • 该应用程序是一个系统应用程序。

  • 该应用程序不请求任何权限。

  • 该应用程序没有默认启用的启动器活动。启动器 Activity 的意图包含 ACTION_MAIN 操作和 CATEGORY_LAUNCHER 类别。

  • 此外,在以下与企业相关的情况下,系统会隐藏部分或所有应用程序的合成活动:

    如果设备是完全托管的设备,则返回的列表中不会显示任何应用程序的合成活动。如果当前用户有工作资料,则返回的列表中不会显示用户工作应用的合成活动。

第三个条件与不启用启动器活动相同。

如何在 android 10 中实现这一目标?

cuz*_*uzi 0

我认为第三个条件是错误的或过时的。

Google 当前的 Android 10 模拟器映像(Google API Intel x86 Atom 系统映像 29_r09)上的行为与文档不同:

getActivityList()始终返回至少一项活动,除非应用程序至少满足一项:

  • 系统应用程序
  • <application> 标签完全为空,即没有声明任何活动、服务等
  • 没有声明权限

此行为对应于Android Q Beta 的发行说明:

启动器图标可见性

在 Android Q Beta 2 中,未在各自清单文件中声明任何权限的包将从“所有应用程序”托盘中隐藏,以下类型的应用程序也是如此:

  • 系统应用程序
  • 各自清单的 <application> 标记内不包含任何组件的应用程序