相关疑难解决方法(0)

以编程方式在Android屏幕上移动鼠标指针

我正在开发一个Android应用程序,我想在Android平板电脑上移动"鼠标"指针/光标.我知道这是可能的,因为当我将鼠标(USB或BT)连接到Android平板电脑(Honeycomb +)时,会出现光标,我只能使用鼠标与平板电脑进行交互.我想在平板电脑上用Java控制那个鼠标.
我已经有了第二个可以与平板电脑通信的设备,它可以将指针坐标传递给它.
不,我不能使用蓝牙.我使用的第二个设备有WiFi但无法驱动蓝牙.我的想法是必须有一种移动鼠标指针的方法.

mouse android pointers cursor

7
推荐指数
2
解决办法
5648
查看次数

如何使用AccessibilityService.getWindows()获得可遍历的AccessibilityNodeInfo?

我正在AccessibilityService为Android 编写一个,直到API级别20,我一直在使用该AccessibilityEvent.getSource()方法来AccessibilityNodeInfoonAccessibilityEvent(AccessibilityEvent event)触发时获取可遍历的对象。尽管结果AccessibilityNodeInfo并不总是反映屏幕的内容,但是仍然可以使用它。

从API级别21开始,新AccessibilityService.getWindows()功能不仅能够更好地表示视图层次结构(即,遵循Z顺序),而且还应该能够公开包含当前视图中所有视图的节点。输入法(IME)。我想利用这一点,但我却没有这样做,我也不知道我到底在做什么错。顺便说一句,除了极少的Java文档,我无法找到有关该操作的更多详细信息。

我已经做了以下工作:

  • 已配置服务以检索窗口内容(android:canRetrieveWindowContent="true"
  • 添加flagRetrieveInteractiveWindows到服务标志

我的代码如下:

@Override
public void onAccessibilityEvent(AccessibilityEvent event) {
            ArrayList<AccessibilityNodeInfo> nodes = getNodesFromWindows();
                switch (event_type) {
                case AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUSED:
                case AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED:
                case AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED:
                //case AccessibilityEvent.TYPE_VIEW_TEXT_CHANGED:
                case AccessibilityEvent.TYPE_VIEW_FOCUSED:
                case AccessibilityEvent.TYPE_VIEW_SELECTED:
                case AccessibilityEvent.TYPE_VIEW_SCROLLED:
                //case AccessibilityEvent.TYPE_VIEW_CLICKED:
                    updateTargetLeafs(nodes);
                }
}
Run Code Online (Sandbox Code Playgroud)

其中getNodesFromWindows()执行以下操作:

private ArrayList<AccessibilityNodeInfo> getNodesFromWindows() {
    List<AccessibilityWindowInfo> windows = getWindows();
    ArrayList<AccessibilityNodeInfo> nodes =
            new ArrayList<AccessibilityNodeInfo>();
    if (windows.size() > 0) {
        for (AccessibilityWindowInfo window : windows) …
Run Code Online (Sandbox Code Playgroud)

java android accessibility accessibilityservice android-5.0-lollipop

5
推荐指数
2
解决办法
5315
查看次数