4

在 Android 中,我开发了两个应用程序。我想用一个启动器以编程方式以分屏模式启动这两个应用程序。我怎么做?

4

2 回答 2

1

我找到了答案。

您可以将 Accessibility API 用于此类功能。它不需要任何权限。

android.accessibilityservice.AccessibilityService有以下api:

service.performGlobalAction(GLOBAL_ACTION_TOGGLE_SPLIT_SCREEN)您可以使用它来启动分屏模式。

public List getWindows () 检查分屏模式是否开启。查找带有 AccessibilityWindowInfo.TYPE_SPLIT_SCREEN_DIVIDER 的窗口

在启动活动时,您还需要使用意图标志。

 val options = ActivityOptionsCompat.makeBasic().toBundle()?.apply {
     putInt(
         ActivityOptionsFlags.KEY_LAUNCH_WINDOWING_MODE,
         ActivityOptionsFlags.WINDOWING_MODE_SPLIT_SCREEN_PRIMARY
     )
     putInt(
         ActivityOptionsFlags.KEY_SPLIT_SCREEN_CREATE_MODE,
         ActivityOptionsFlags.SPLIT_SCREEN_CREATE_MODE_TOP_OR_LEFT
     )
 }

 startActivities(listOf(intentBottom, intentTop).toTypedArray(), options)

使用此可访问性 api 和意图标志,您可以实现您的目标。有关详细实施,请参阅 stavangr 的repo。

https://developer.android.com/reference/android/accessibilityservice/AccessibilityService.html

于 2019-11-27T10:32:13.923 回答
0

我确实搜索了很长时间,但从未找到使用单个启动器启动多个应用程序的任何内容。我得到的最好的情况是在我的三星设备中(在 s8 系列之后),它支持应用程序配对(用户文档手册)

我相信这Samsung是允许的,因为他们必须支持那里的自定义 Android 操作系统。就像他们有自己的自定义上下文菜单代码和许多其他调整一样。

参考gif

于 2019-11-22T14:25:16.807 回答