gpt4 book ai didi

android - 检查屏幕是否处于无 Activity 的多窗口模式

转载 作者:行者123 更新时间:2023-12-04 23:56:44 29 4
gpt4 key购买 nike

如果我无权访问 Activity,有什么方法可以查明屏幕是否被分割? ? (结构上我不能调用 isInMultiWindowMode 方法。

我看到默认 Activity#isInMultiWindowMode()实现是:

public boolean isInMultiWindowMode() {
try {
return ActivityManagerNative.getDefault().isInMultiWindowMode(mToken);
} catch (RemoteException e) {
}
return false;
}

有什么解决方法吗?

最佳答案

我认为没有 Activity 的唯一方法是这样做是通过使用 AccessibilityService有权获取当前显示的窗口列表并检查是否存在类型为 AccessibilityWindowInfo.TYPE_SPLIT_SCREEN_DIVIDER 的窗口.

例如,您可以使用以下方法来执行此操作:

private boolean inSplitScreenMode(List<AccessibilityWindowInfo> windows) {
for (AccessibilityWindowInfo window : windows) {
if (window.getType() == AccessibilityWindowInfo.TYPE_SPLIT_SCREEN_DIVIDER) {
return true;
}
}
return false;
}

在接收窗口状态更改的可访问性事件时检查此方法
@Override
public void onAccessibilityEvent(AccessibilityEvent event) {
if ((event.getEventType() & AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED) != 0) {
if (inSplitScreenMode(getWindows()) {
Log.d(TAG, "Split screen mode detected");
} else {
Log.d(TAG, "No split screen");
}
}
}

关于android - 检查屏幕是否处于无 Activity 的多窗口模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39764503/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com