gpt4 book ai didi

android - netflix 或 google 等视频播放器如何处理显示/隐藏视频播放器控件?

转载 作者:行者123 更新时间:2023-12-03 20:55:30 24 4
gpt4 key购买 nike

我正在开发一个供我自己使用的小项目,我需要我的辅助功能服务来在屏幕上执行点击并显示/隐藏来自 Netflix 或 youtube 等视频播放器的控件。

所以在我的accessibilityService中我使用getRootInActiveWindow()我得到了对应用程序窗口的引用(例如 com.netflix.mediaclient)

然后我遍历所有节点并执行 performAction(AccessibilityNodeInfo.ACTION_CLICK)但似乎没有一个节点是可点击的(当媒体播放器控件被隐藏时,否则我可以点击控制按钮)并且我不能让媒体播放器控件显示出来。

知道为什么会这样吗?此外,是否可以在一般屏幕上而不是在特定的 AccessibilityNodeInfo 上执行点击?

更新

事实证明,问题在于 ACTION_CLICK 不能作为 TOUCH 工作,因此如果 View 对触摸事件使用react,但对单击事件没有反应,那么 ACTION_CLICK 将不会做任何事情。不幸的是,似乎没有办法对 AccessibilityNodeInfo 对象执行点击。

最佳答案

我无法使视频播放器控件通过可访问性节点出现,但我能够通过使用以下代码模拟屏幕上的点击来实现类似的效果。

private void click(int x, int y) {
Path path = new Path();
path.moveTo(x, y);
path.moveTo(x+10, y+10);
GestureDescription.Builder builder = new GestureDescription.Builder();
GestureDescription gestureDescription = builder.addStroke(new GestureDescription.StrokeDescription(path, 10, 200)).build();
dispatchGesture(gestureDescription, null, null);
}

然后我用 300, 300 之类的东西调用 click 函数

确保放
android:canPerformGestures="true"

在您的 AccessibilityService XML 文件中。

我仍然很好奇为什么我无法在节点上实现同样的效果,所以如果有人知道,请告诉我。

关于android - netflix 或 google 等视频播放器如何处理显示/隐藏视频播放器控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61023810/

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