为了精确地实现目标,我们需要安装Xposed Additions Pro和Tasker,其中前者需要root访问权限并安装Xposed Framework(稳定版本)。
安装Xposed Additions之后,系统会要求您在Xposed Framework中激活其模块。激活它。
我们将使用Xposed Addition的功能来拦截按键,并为该按键提供要执行的条件和操作。我们将使用Tasker规避Xposed Addition的有限选项集。
注意:所有部分均在Android 4.4.2和5.0.2上进行了测试。
Xposed加法说明
- 启动Xposed添加 →点击按钮
- 点击添加新密钥
- 按下设备的按钮用作键盘 ↑ 键
- 我选择了“调高音量” /“ +”按钮
- 点击您先前选择的按钮的条目
- 点击添加新条件
- 点击加载应用程序列表
- 选择您想要的应用程序音量按钮来模拟键盘的 ↑ 键
- 点按您先前选择的应用程序的条目
- 选中复选框以激活单击
- 点击点击
- 选择DPad Up,也称为Directional Pad Up,这是一个KeyEvent
(点击图片放大;将鼠标悬停以了解详细信息)
(图像顺序:每行从左到右依次跟踪图像)
现在您可以创建一个动作音量 / -以前述方式按钮,但选择DPAD下,在最后一步。
是时候启动在上述步骤中选择的应用程序,然后尝试按增大音量和减小音量按钮。它们将用作键盘的 ↑ ↓ 方向键。
请注意,与物理键盘相反,在物理键盘上,如果您按住方向键,系统将继续向上/向下滚动,如果您长按(上述选定的)设备的按钮,则不会出现这种情况。
另外,代替选择DPad Up和DPad Down,选择Page Up和Page Down也可以模拟键盘Pg Up和Pg Dn键,或者将它们分配给步骤10中列出的其他操作。
而且,不要理会铃声或扬声器的音量,因为可以通过长按那些“ 增大音量”和“ 减小音量”按钮来管理它们。启动上述选定应用程序时,此行为有效。
我已经在Chrome,Firefox和某些文本编辑器上成功测试了上述解决方案。到目前为止,一切都很好!
不!所述解决方案不适用于所有应用。我们希望涵盖所有应用程序,因此为什么只限于Web浏览器和文本编辑器。
不幸的是,有些应用程序无法在该解决方案上运行。我们在那里使用的KeyEvents似乎对Foxit MobilePDF,WPS Office,BetterbatteryStats之类的应用程序没有任何影响,甚至在野外也没有。
现在让我们专注于一个新的解决方案。Android允许使用input
命令发送滑动;Xposed Additions允许使用自定义快捷方式作为操作;Tasker可以创建一个自定义快捷方式来使用input swipe
。
Tasker和Xposed添加说明
我们首先需要滑动的开始和结束(X和Y)坐标才能在input
命令中使用它们。我们可以使用Getevent命令记录它。
在您的PC中设置adb,将设备插入PC,在设备中启用USB调试,在PC上启动Shell,然后输入:
adb shell su -c 'getevent -l'
它会显示一些行,然后无限期地等待输出。
现在该是您确定滑动时间的一种方式了,以代替DPad Up / Page Up。
例如,测量两个图像中的滑动的箭头长度是分别滚动DPad上 / 下和页面上 / 下的长度的一种替代方法。
当您在屏幕上滑动时,PC上的外壳将显示如下输出:
/dev/input/event0: EV_ABS ABS_MT_TRACKING_ID 0000044c
/dev/input/event0: EV_KEY BTN_TOUCH DOWN
/dev/input/event0: EV_KEY BTN_TOOL_FINGER DOWN
/dev/input/event0: EV_ABS ABS_MT_POSITION_X 00000300
/dev/input/event0: EV_ABS ABS_MT_POSITION_Y 000006de
/dev/input/event0: EV_ABS ABS_MT_PRESSURE 000000c0
/dev/input/event0: EV_ABS ABS_MT_TOUCH_MINOR 00000004
/dev/input/event0: EV_SYN SYN_REPORT 00000000
/dev/input/event0: EV_SYN SYN_REPORT 00000000
...
/dev/input/event0: EV_ABS ABS_MT_POSITION_X 000002fb
/dev/input/event0: EV_ABS ABS_MT_POSITION_Y 000004e3
/dev/input/event0: EV_ABS ABS_MT_PRESSURE 000000cc
/dev/input/event0: EV_SYN SYN_REPORT 00000000
/dev/input/event0: EV_ABS ABS_MT_PRESSURE 000000c8
向上滑动特定长度后,在PC中按Ctrl+ C停止命令。
在其输出注释中,第一个ABS_MT_POSITION_X(00000300
)和ABS_MT_POSITION_Y(000006de
),最后一个ABS_MT_POSITION_X(000002fb
)和ABS_MT_POSITION_Y(000004e3
)条目。它们是十六进制形式的开始(X1,Y1)和结束(X2,Y2)坐标。将它们转换为十进制形式(在此处尝试使用转换器)。
在外壳程序中,如果输入:
adb shell input touchscreen swipe X1 Y1 X2 Y2
(用现在转换的十进制坐标替换X1,Y1和X2,Y2),您会注意到设备上的向上滑动有效地模拟了向下滚动。操纵这些坐标,直到获得理想的向下滚动。
作为使用Getevent的替代方法,您可以尝试一种更友好的方法。
在“ 开发人员”选项下启用“ 指针位置 ” 。启用它后,设备的状态栏将被一个显示某些坐标的栏覆盖,该坐标会随着屏幕上轻击/轻扫的移动而变化。
是时候记录您的划动长度了。触摸并按住手指在屏幕上,X:
然后Y:
在顶部显示并注意。开始向上滑动手指到所需的长度;停下来,但不要松开手指,记下相应的X:
和Y:
坐标。
这些是向上滑动的X1,Y1和X2,Y2坐标。它们为十进制格式,因此您可以在input
命令中直接使用它们。
您可以选择立即禁用指针位置。
Tasker专用说明
现在,我们将创建一个快捷方式来模拟我们在上一个命令中手动执行的滑动,以实现自动化。
- 启动Tasker并启用它。如果“ 个人资料”标签上方的图标亮起,则说明该图标已经处于活动状态。请注意,Tasker中的所有内容都通过按“后退”按钮保存,这也会更改活动窗口。
- 通过(在底部)在Tasks
+
(任务)下创建一个任务 →命名它(例如Scroll Down
)。
通过+
→ 代码→运行Shell在其中创建一个动作,然后输入以下详细信息:
- 创建一个名为的新任务
Scroll Up
,并按照以下步骤3在其中创建一个动作。对于向下滑动模拟,只需交换坐标,即为,如果发生错误,还可以input swipe X2 Y2 X1 Y1
选择用于%su_err
存储错误!
Xposed Additions中使用任务快捷方式的说明
这是解决方案的最后阶段,将在Xposed Additions中使用这些自定义快捷方式。
- 请按照第一部分中的步骤1-11处理Xposed加法的使用
- 选择快捷方式,而不是DPad Up或Page Up
- 选择任务快捷方式→向上滚动
- 选择底部的3x3方形框图标
- 选择一个图标,然后返回Xposed Additions。
- 对“降低音量”重复上述步骤1-5,然后在其中选择“向下滚动”。现在,您已经知道每次都要做什么。
我整理了一段视频,展示了整个行动的答案。在这里。请注意质量,因为它已从100MB大量撕裂到7.1MB。
干杯!