另外一种方案之一 就是模拟点击
hook或者修改方式注入的点击
首先要研究如何点击,由于理解点击事件是如何产生的原理,所以应该就是手动调用onTouchEvent
模拟点击长按
MotionEvent obtain;
obtain = MotionEvent.obtain(time, time, MotionEvent.ACTION_DOWN, 0, 50, 0);
btn.onTouchEvent(obtain);//点击按下
模拟点击
obtain = MotionEvent.obtain(time, time, MotionEvent.ACTION_DOWN, 0, 50, 0);
btn.onTouchEvent(obtain);//点击按下
obtain = MotionEvent.obtain(time,time, MotionEvent.ACTION_UP, 0, 50, 0);
btn.onTouchEvent(obtain);
打开领取语音红包界面
寻找突破口,找到activity 使用我自己开发的hook工具分析
【当前app包名】com.tencent.mobileqq
【所在进程】com.tencent.mobileqq
[入口Application]com.tencent.common.app.QFixApplicationImpl
【nativeLibraryDir】/data/app-lib/com.tencent.mobileqq-2
【App文件路径】/data/app/com.tencent.mobileqq-2.apk
【cacheDir】/data/user/0/com.tencent.mobileqq/cache
【数据目录】/data/user/0/com.tencent.mobileqq
【uid】10047
【签名字符串】a6b745bf24a2c277527716f6f36eb68d
【目标/min/sdk】9
【进程名】com.tencent.mobileqq
【进程PID】1385
【ActivityName】QQ
ActivityClass:com.tencent.mobileqq.activity.PublicTransFragmentActivity,hashCode:1261235652,superClass:com.tencent.mobileqq.activity.PublicFragmentActivity
然后寻找actiivty的view,找到录音view.
打开android studio ->Tool->layout Inspector
选择QQ进程
选择
com.tencent.mobileqq.activity.PublicFragmentActivity
遍历view树节点 寻找匹配的view,手动点击onTouch
上图有2个特征点一个是根据view的contentDescription
进进行文字匹配,另外一个就是根据className是否等于RecordMicView
进行匹配
ok现在开始新动作。
模拟长按测试。
寻找标题名称。
特征 属于同级,而且文本包含"
另外是不可点击的,而且是属于从上往下排列的第一个文本控件 而且是不可以点击的,另外字体大小是最大的。 有了这些特征,很容易判断是不是标题控件了。
最后,自动点击的方案已经研究出来了,前提是必须打开红包界面,那么自动点击红包界面也是差不多的过程,
那么自动播放语音以及播放完毕后自动停止我都走了,但是唯有自动点击没有做,因为暂时感觉按下等情迁工具箱软件播放语音完毕后手动按差不了多少的。。所以就没弄,就在我的hookui软件测试了可行性。
本教程编写与2018年4月, 6月份才决定分享的.