繁体   English   中英

启动两个应用程序,Android nougat

[英]launch two apps, Android nougat

我想为 android nougat 创建一个应用程序,当我单击一个按钮时,我会在同一时间和同一屏幕上启动两个应用程序。 我想使用 Android 7 的这个新功能,可以吗?

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

android.accessibilityservice.AccessibilityService 具有以下 api:

service.performGlobalAction(GLOBAL_ACTION_TOGGLE_SPLIT_SCREEN)可用于启动分屏模式。

public List<AccessibilityWindowInfo> 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)

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

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

您可以查看此github存储库https://github.com/stavangr/SplitScreenLauncher

它通过可访问性api满足您的需求,但是有趣的是,应用程序不要求任何权限。

至少在我的Android 2像素2上

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM