微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从服务发送 KeyEvent

如何解决从服务发送 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 举报,一经查实,本站将立刻删除。