从服务发送 KeyEvent

问题描述

我正在尝试创建一个 Android 应用程序,该应用程序在其他应用程序之上覆盖一个按钮,单击该按钮会触发“Page Down”键事件。通过这种方式,人们可以轻松地滚动浏览,例如任何所需的网络浏览器中的网页。

我从 import matplotlib.pyplot as plt import networkx as nx totnod = 60 shp_path = "road_exposure.shp" net = nx.DiGraph() G = nx.read_shp(shp_path) # Get Some Nodes poskey = [] posval = [] pos = {} posx = {} i = 0 for k,v in enumerate(G.nodes()): poskey.append(k) posval.append(v) posx = {k: v} pos.update(posx) i += 1 if i == totnod: break # Get Some Edges edgsrc = [] edgdst = [] nodeedg = [] i = 0 for x in G.edges(): nodeedg.append(i) edgsrc.append(x[0]) edgdst.append(x[1]) i += 1 if i == totnod: break # Empty graph X=nx.Graph() newedg = [] tplkv = () for pk in poskey: indpkey1 = poskey.index(pk) src = posval[indpkey1] if src in edgsrc: indsrc = edgsrc.index(src) dst = edgdst[indsrc] inddst = edgdst.index(dst) pv = nodeedg[inddst] tplkv = (pk,pv) newedg.append(tplkv) print(poskey) print(newedg) X.add_nodes_from(poskey) X.add_edges_from(newedg) nx.draw_networkx(X,pos) plt.title('From shapefiles to NetworkX') plt.show() 中绘制按钮,使用 ServiceWindowManager 权限在其他应用上绘制。要将 SYstem_ALERT_WINDOW 发送到当前聚焦的窗口(如网络浏览器),我想在 KeyEvent 方法中执行以下操作:

onClick

问题是我认为不可能从我的 BaseInputConnection mInputConnection = new BaseInputConnection(targetView,true); KeyEvent keyDown = new KeyEvent(KeyEvent.ACTION_DOWN,KeyEvent.KEYCODE_PAGE_DOWN); KeyEvent keyUp = new KeyEvent(KeyEvent.ACTION_UP,KeyEvent.KEYCODE_PAGE_DOWN); mInputConnection.sendKeyEvent(keyDown); mInputConnection.sendKeyEvent(keyUp); 上下文中获取当前聚焦的视图(例如 Web 浏览器的窗口),我需要将其作为 Service 提供给 { {1}}。那是对的吗?还有其他触发按键事件的方法吗?我需要做的就是模拟一个 Page Down 按键,例如一个硬件键盘。 我不认为将应用程序声明为 InputMethod 本身是可行的方法,是吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)