在 Android 中,我开发了两个应用程序。我想用一个启动器以编程方式以分屏模式启动这两个应用程序。我怎么做?
问问题
1025 次
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 回答