在微信8.0上,教你写一个放烟花辅助|牛气冲天新年征文

您所在的位置:网站首页 教你放烟花 在微信8.0上,教你写一个放烟花辅助|牛气冲天新年征文

在微信8.0上,教你写一个放烟花辅助|牛气冲天新年征文

2023-04-03 04:45| 来源: 网络整理| 查看: 265

前言

看完你也可以写一个烟花,给家人或者女盆友或者男朋友放一场环保的烟花。看了,岂不很浪漫。没有女盆友的就放给家人看吧!没有男盆友的,这点我可以帮助一下你。

先看个效果吧

是不是看着好像手动一样。哈哈,但是要是一直发100条,就不一样了。

下载地址

需要去github下载 助手apk地址

《青玉案·元夕》 宋·辛弃疾 东风夜放花千树,更吹落,星如雨。宝马雕车香满路。 凤箫声动,玉壶光转,一夜鱼龙舞。 蛾儿雪柳黄金缕,笑语盈盈暗香去。 众里寻他千百度,蓦然回首,那人却在,灯火阑珊处。

其中东风夜放花千树,更吹落,星如雨。就是描写烟花的。

使用方法,我相信很多人根本不关心是如何实现的,因为我也一样。

进入主界面,去开启无障碍服务,不同品牌可能开启的页面不一样,注意到是放烟花那个服务开启就好,可以参考一下我的小米手机。

app界面

单位为秒是发送烟花间隔时间

放烟花次数这个就是发送烟花的次数

去打开烟花

开启成功后

开启成功后

使用方法就是在输入框里面输入开始放烟花啦,就可以开始发送烟火了,由于是监控输入框,可能不太及时,多试二次就好。遇到问题或在下方评论。

唠叨

本来早早就要写的了,出于种种原因没有写,问就是懒。当然也有一个原因,一直没办法拿到微信的聊天记录,那些聊天就是是一个view,没有文字。在微信8.0上,写了一个放烟花辅助,当然放炸弹也行。这里我就不从入门开始写了,因为我不擅长写入门文章,好吧!归根到底是我懒。

AccessibilityService

AccessibilityService设计初衷在于帮助残障用户使用android设备和应用,在后台运行,可以监听用户界面的一些状态转换,例如页面切换、焦点改变、通知、Toast等,并在触发AccessibilityEvents时由系统接收回调。后来被开发者另辟蹊径,用于一些插件开发,比如自动聊天助手,微信红包助手,这个我相信很多人都用过,小米开源了红包助手,把AccessibilityService推向了高潮。

开始吧

起初我想拿到微信聊天记录来触发放烟火的,由于一直拿不到微信的聊天记录。我只能退而求次,换个思路出发了。后面想想,think again ,think again ,think again.想到监听输入框来当命令吧。

android 工具uiautomatorviewer

这个工具是用来获取页面的布局数据的,工具在你的androidSdk\SDK\tools\bin(具体得你的安装目录)

第一步先监听触发命令

监听输入框,把输入框文字作为命令。代码写的挺简单的,没啥水平,也很急。所以凑合看吧。 这里步骤主要是

1,查找输入框节点,这个查找输入框节点下面说。 2,监听输入框。 3,消息发出去。 4,触发烟花发送。 5,重置一下数据。 private fun listenerInputCmd() { if (isStart) return val editText = findInput() ?: return if (editText.text.isNullOrEmpty()) return if ("开始放烟花啦" != editText.text.toString()) { Log.d(TAG, "AccessibilityEvent editText1:" + editText.text) return } //寻找发送按钮 val sendBtn = findSendButton() ?: return //把消息发出去,然后开始! val isSuccess = sendBtn.performAction(AccessibilityNodeInfo.ACTION_CLICK) if (!isSuccess) return reSet() isStart = true } 复制代码

我们使用工具uiautomatorviewer能分析到输入框的节点,如图所示,我们知道输入框节点为com.tencent.mm:id/auj了,那么我们就可以开始写代码了。

/** * 查找输入框 */ private fun findInput(): AccessibilityNodeInfo? { //查找节点 val input = rootInActiveWindow.findAccessibilityNodeInfosByViewId("com.tencent.mm:id/auj") if (input.isNullOrEmpty()) { return null } if (input[input.size - 1].className != "android.widget.EditText") { return null } return input[input.size - 1] } 复制代码 把烟花设置到输入框中,接着就按下发送按钮。 烟花设置到输入框中

来让我看看,是怎么把内容设置进去的。这块支持还是很多api的玩法。直接调用AccessibilityNodeInfo的performAction来设置内容。

val arguments = Bundle() arguments.putCharSequence( AccessibilityNodeInfo.ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE, "[庆祝]" ) val editText = findInput() //输入框中输入礼花 editText.performAction(AccessibilityNodeInfo.ACTION_SET_TEXT, arguments) 复制代码 按下发送按钮

第一步我们要查找按钮,找到发送按钮的节点。如图中所示:

接着我们就知道按钮的节点ID是com.tencent.mm:id/ay5,那么我们就可以去调戏它了。还是利用findAccessibilityNodeInfosByViewId去准确定位节点。跟上面差不多的,我相信聪明的你一看就懂了。不懂可以私聊我。

private fun findSendButton(): AccessibilityNodeInfo? { //消息发送按钮的节点。 val sendButton = rootInActiveWindow.findAccessibilityNodeInfosByViewId("com.tencent.mm:id/ay5") if (sendButton.isNullOrEmpty()) { return null } sendButton.forEach { //匹配button if (it.className == "android.widget.Button") { Log.d(TAG, "found send button!") return it } } return null } 复制代码 历经千辛万苦,要进入发礼花的主题了

其实这个比较简单,这里忽略一下细节的判断,就从大的方面出发,我们分几步走。

1,发送休眠时间,发送太频繁,是发送不成功的,因为服务器受不了。这里建议休眠0.8秒浮动。

2,点击按钮发送按钮

3,查找输入框,设置礼花。

4,发送礼花到达最大次数,发送结束,重置参数。

//进入循环 while (count < maxSendMessageCount) { if (!isStart) return Thread.sleep(sleepTime.toLong()) val isSuccess = sendBtn?.performAction(AccessibilityNodeInfo.ACTION_CLICK) Log.d(TAG, "startFireworks: //ing$count--- $isSuccess") if (isSuccess!!) { count++ } val arguments = Bundle() //输入框中输入礼花 arguments.putCharSequence( AccessibilityNodeInfo.ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE, "[庆祝]" ) val editText = findInput() if (editText == null) { runningType = 0 return } editText.performAction(AccessibilityNodeInfo.ACTION_SET_TEXT, arguments) } //重置参数 reSet() 复制代码

当然代码中还有一些细节这里没有说,可自行看代码去,比如发送次数的判断,还是防止多次进去的判断。

apk下载地址

需要去github下载

助手apk地址

完整代码地址

代码地址

总结

本来想写红包助手的,哈哈,由于时间(其实是我写不出来),变成了礼花助手。思路都多变的,举一反三,还可以变成朋友圈点赞助手。

本人知识有限,如有描述错误之处,愿虎正。

你看这个像不像你欠我的赞。

谢谢大家。祝大家新年快乐,如果快乐不易,那我祝你平安。你的赞就像冬日暖阳,温暖心窝。

今天这个特殊的日子里,送海子的诗你: 陌生人,我也为你祝福 愿你有一个灿烂的前程 愿你有情人终成眷属 愿你在尘世获得幸福


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3