@@ -2,8 +2,7 @@ package com.coderpig.wechathelper
2
2
3
3
import android.accessibilityservice.AccessibilityService
4
4
import android.app.Notification
5
- import android.app.PendingIntent
6
- import android.content.ContentValues.TAG
5
+ import android.app.PendingIntent.CanceledException
7
6
import android.os.Bundle
8
7
import android.os.Handler
9
8
import android.util.Log
@@ -37,15 +36,15 @@ class HelperService : AccessibilityService() {
37
36
" com.tencent.mm.ui.LauncherUI" -> openGroup()
38
37
" com.tencent.mm.ui.contact.ChatroomContactUI" -> searchGroup()
39
38
" com.tencent.mm.ui.chatting.ChattingUI" -> openGroupSetting()
40
- " com.tencent.mm.plugin. chatroom.ui.ChatroomInfoUI" -> openSelectContact()
39
+ " com.tencent.mm.chatroom.ui.ChatroomInfoUI" -> openSelectContact()
41
40
" com.tencent.mm.ui.contact.SelectContactUI" -> addMembers()
42
41
}
43
42
}
44
43
if (className == " com.tencent.mm.ui.widget.a.c" ) {
45
44
dialogClick()
46
45
}
47
46
if (Hawk .get(Constant .FRIEND_SQUARE , false )) {
48
- if (className == " com.tencent.mm.plugin.sns.ui.SnsTimeLineUI " ) {
47
+ if (className == " com.tencent.mm.plugin.sns.ui.SnsTimeLineUI" ) {
49
48
autoZan()
50
49
}
51
50
}
@@ -66,39 +65,36 @@ class HelperService : AccessibilityService() {
66
65
val pendingIntent = notification.contentIntent
67
66
try {
68
67
pendingIntent.send()
69
- } catch (e: PendingIntent . CanceledException ) {
68
+ } catch (e: CanceledException ) {
70
69
e.printStackTrace()
71
70
}
72
71
73
72
}
74
73
}
75
74
}
76
75
77
- // //滚动的时候也去监听红包,不过有点卡
78
- // // AccessibilityEvent.TYPE_VIEW_SCROLLED -> {
79
- // // if (className == "android.widget.ListView") {
80
- // // openRedPacket()
81
- // // }
82
- // // }
83
- // }
84
- // }
76
+ // 滚动的时候也去监听红包,不过有点卡
77
+ // AccessibilityEvent.TYPE_VIEW_SCROLLED -> {
78
+ // if (className == "android.widget.ListView") {
79
+ // openRedPacket()
80
+ // }
81
+ // }
85
82
}
86
-
87
83
}
88
84
89
85
90
86
// 1.打开群聊
91
87
private fun openGroup () {
92
88
val nodeInfo = rootInActiveWindow
93
89
if (nodeInfo != null ) {
94
- val tabNodes = nodeInfo.findAccessibilityNodeInfosByViewId(" com.tencent.mm:id/cdj " )
90
+ val tabNodes = nodeInfo.findAccessibilityNodeInfosByViewId(" com.tencent.mm:id/chq " )
95
91
for (tabNode in tabNodes) {
96
92
if (tabNode.text.toString() == " 通讯录" ) {
97
93
tabNode.parent.performAction(AccessibilityNodeInfo .ACTION_CLICK )
98
94
handler.postDelayed({
99
95
val newNodeInfo = rootInActiveWindow
100
96
if (newNodeInfo != null ) {
101
- val tagNodes = newNodeInfo.findAccessibilityNodeInfosByViewId(" com.tencent.mm:id/k3 " )
97
+ val tagNodes = newNodeInfo.findAccessibilityNodeInfosByViewId(" com.tencent.mm:id/li " )
102
98
for (tagNode in tagNodes) {
103
99
if (tagNode.text.toString() == " 群聊" ) {
104
100
tagNode.parent.parent.performAction(AccessibilityNodeInfo .ACTION_CLICK )
@@ -116,7 +112,7 @@ class HelperService : AccessibilityService() {
116
112
private fun searchGroup () {
117
113
val nodeInfo = rootInActiveWindow
118
114
if (nodeInfo != null ) {
119
- val nodes = nodeInfo.findAccessibilityNodeInfosByViewId(" com.tencent.mm:id/aaq " )
115
+ val nodes = nodeInfo.findAccessibilityNodeInfosByViewId(" com.tencent.mm:id/ad_ " )
120
116
for (info in nodes) {
121
117
if (info.text.toString() == Hawk .get(Constant .GROUP_NAME )) {
122
118
info.parent.performAction(AccessibilityNodeInfo .ACTION_CLICK )
@@ -130,7 +126,7 @@ class HelperService : AccessibilityService() {
130
126
private fun openGroupSetting () {
131
127
val nodeInfo = rootInActiveWindow
132
128
if (nodeInfo != null ) {
133
- nodeInfo.findAccessibilityNodeInfosByViewId(" com.tencent.mm:id/hh " )[0 ].performAction(AccessibilityNodeInfo .ACTION_CLICK )
129
+ nodeInfo.findAccessibilityNodeInfosByViewId(" com.tencent.mm:id/ix " )[0 ].performAction(AccessibilityNodeInfo .ACTION_CLICK )
134
130
}
135
131
}
136
132
@@ -146,7 +142,7 @@ class HelperService : AccessibilityService() {
146
142
val scrollNodeInfo = rootInActiveWindow
147
143
if (scrollNodeInfo != null ) {
148
144
handler.postDelayed({
149
- val nodes = scrollNodeInfo.findAccessibilityNodeInfosByViewId(" com.tencent.mm:id/d4_ " )
145
+ val nodes = scrollNodeInfo.findAccessibilityNodeInfosByViewId(" com.tencent.mm:id/d93 " )
150
146
for (info in nodes) {
151
147
if (info.contentDescription.toString() == " 添加成员" ) {
152
148
info.parent.performAction(AccessibilityNodeInfo .ACTION_CLICK )
@@ -167,7 +163,7 @@ class HelperService : AccessibilityService() {
167
163
handler.postDelayed({
168
164
val nodeInfo = rootInActiveWindow
169
165
if (nodeInfo != null ) {
170
- val editNodes = nodeInfo.findAccessibilityNodeInfosByViewId(" com.tencent.mm:id/au7 " )
166
+ val editNodes = nodeInfo.findAccessibilityNodeInfosByViewId(" com.tencent.mm:id/cmz " )
171
167
if (editNodes != null && editNodes.size > 0 ) {
172
168
val editNode = editNodes[0 ]
173
169
val arguments = Bundle ()
@@ -177,7 +173,7 @@ class HelperService : AccessibilityService() {
177
173
}
178
174
}, 500L * (i + 1 ))
179
175
handler.postDelayed({
180
- val cbNodes = rootInActiveWindow.findAccessibilityNodeInfosByViewId(" com.tencent.mm:id/lp " )
176
+ val cbNodes = rootInActiveWindow.findAccessibilityNodeInfosByViewId(" com.tencent.mm:id/nq " )
181
177
if (cbNodes != null ) {
182
178
val cbNode: AccessibilityNodeInfo ?
183
179
if (cbNodes.size > 0 ) {
@@ -188,7 +184,7 @@ class HelperService : AccessibilityService() {
188
184
// 最后一次的时候清空记录,并且点击顶部确定按钮
189
185
if (i == members.size - 1 ) {
190
186
Hawk .put(Constant .MEMBER_LIST , mutableListOf<String >())
191
- val sureNodes = rootInActiveWindow.findAccessibilityNodeInfosByViewId(" com.tencent.mm:id/hg " )
187
+ val sureNodes = rootInActiveWindow.findAccessibilityNodeInfosByViewId(" com.tencent.mm:id/iw " )
192
188
if (sureNodes != null && sureNodes.size > 0 ) {
193
189
sureNodes[0 ].performAction(AccessibilityNodeInfo .ACTION_CLICK )
194
190
}
@@ -201,15 +197,13 @@ class HelperService : AccessibilityService() {
201
197
202
198
// 对话框自动点击
203
199
private fun dialogClick () {
204
- val inviteNode = rootInActiveWindow.findAccessibilityNodeInfosByViewId(" com.tencent.mm:id/an3" )[0 ]
205
- inviteNode.performAction(AccessibilityNodeInfo .ACTION_CLICK )
206
200
handler.postDelayed({
207
- val sureNodes = rootInActiveWindow.findAccessibilityNodeInfosByViewId(" com.tencent.mm:id/an3 " )
208
- if (sureNodes != null && sureNodes .size > 0 ) {
209
- val sureNode = sureNodes [0 ]
201
+ val inviteNode = rootInActiveWindow.findAccessibilityNodeInfosByViewId(" com.tencent.mm:id/apk " )
202
+ if (inviteNode != null && inviteNode .size > 0 ) {
203
+ val sureNode = inviteNode [0 ]
210
204
sureNode.performAction(AccessibilityNodeInfo .ACTION_CLICK )
211
205
}
212
- }, 1000L )
206
+ }, 500L )
213
207
performBackClick()
214
208
}
215
209
@@ -220,21 +214,21 @@ class HelperService : AccessibilityService() {
220
214
while (true ) {
221
215
val rootNode = rootInActiveWindow
222
216
if (rootNode != null ) {
223
- val listNodes = rootNode.findAccessibilityNodeInfosByViewId(" com.tencent.mm:id/dja " )
217
+ val listNodes = rootNode.findAccessibilityNodeInfosByViewId(" com.tencent.mm:id/dor " )
224
218
if (listNodes != null && listNodes.size > 0 ) {
225
219
val listNode = listNodes[0 ]
226
- val zanNodes = listNode.findAccessibilityNodeInfosByViewId(" com.tencent.mm:id/dg4 " )
220
+ val zanNodes = listNode.findAccessibilityNodeInfosByViewId(" com.tencent.mm:id/dlk " )
227
221
for (zan in zanNodes) {
228
222
zan.performAction(AccessibilityNodeInfo .ACTION_CLICK )
229
- Thread .sleep(300 )
230
- val zsNodes = rootInActiveWindow.findAccessibilityNodeInfosByViewId(" com.tencent.mm:id/df4 " )
231
- Thread .sleep(300 )
223
+ Thread .sleep(500 )
224
+ val zsNodes = rootInActiveWindow.findAccessibilityNodeInfosByViewId(" com.tencent.mm:id/dkn " )
225
+ Thread .sleep(500 )
232
226
if (zsNodes != null && zsNodes.size > 0 ) {
233
227
if (zsNodes[0 ].findAccessibilityNodeInfosByText(" 赞" ).size > 0 ) {
234
228
zsNodes[0 ].performAction(AccessibilityNodeInfo .ACTION_CLICK )
235
229
}
236
230
}
237
- Thread .sleep(300 )
231
+ Thread .sleep(500 )
238
232
}
239
233
listNode.performAction(AccessibilityNodeInfo .ACTION_SCROLL_FORWARD )
240
234
}
@@ -249,26 +243,31 @@ class HelperService : AccessibilityService() {
249
243
private fun openRedPacket () {
250
244
val rootNode = rootInActiveWindow
251
245
if (rootNode != null ) {
252
- val listNode = rootNode.findAccessibilityNodeInfosByViewId(" com.tencent.mm:id/ab_" )
253
- if (listNode != null && listNode.size > 0 ) {
254
- val msgNodes = listNode[0 ].findAccessibilityNodeInfosByViewId(" com.tencent.mm:id/aem" )
255
- if (msgNodes != null && msgNodes.size > 0 ) {
256
- for (rpNode in msgNodes) {
257
- val rpStatusNode = rpNode.findAccessibilityNodeInfosByText(" 领取红包" )
258
- if (rpStatusNode != null && rpStatusNode.size > 0 ) {
259
- rpNode.performAction(AccessibilityNodeInfo .ACTION_CLICK )
260
- break
246
+ val rFrameNode = rootNode.findAccessibilityNodeInfosByViewId(" com.tencent.mm:id/ads" );
247
+ if (rFrameNode != null && rFrameNode.size > 0 ) {
248
+ val listNode = rFrameNode[0 ].getChild(0 )
249
+ if (listNode != null ) {
250
+ val msgNodes = listNode.findAccessibilityNodeInfosByViewId(" com.tencent.mm:id/ah4" )
251
+ if (msgNodes != null && msgNodes.size > 0 ) {
252
+ for (rpNode in msgNodes) {
253
+ val rpStatusNode = rpNode.findAccessibilityNodeInfosByText(" 领取红包" )
254
+ if (rpStatusNode != null && rpStatusNode.size > 0 ) {
255
+ rpNode.performAction(AccessibilityNodeInfo .ACTION_CLICK )
256
+ break
257
+ }
261
258
}
262
259
}
263
260
}
264
261
}
262
+
263
+
265
264
}
266
265
}
267
266
268
267
// 打开红包
269
268
private fun clickRedPacket () {
270
269
val nodeInfo = rootInActiveWindow
271
- val clickNode = nodeInfo.findAccessibilityNodeInfosByViewId(" com.tencent.mm:id/c85 " )
270
+ val clickNode = nodeInfo.findAccessibilityNodeInfosByViewId(" com.tencent.mm:id/cb2 " )
272
271
if (clickNode != null && clickNode.size > 0 ) {
273
272
clickNode[0 ].performAction(AccessibilityNodeInfo .ACTION_CLICK )
274
273
} else {
@@ -293,6 +292,7 @@ class HelperService : AccessibilityService() {
293
292
294
293
private fun performBackClick () {
295
294
handler.postDelayed({ performGlobalAction(AccessibilityService .GLOBAL_ACTION_BACK ) }, 1300L )
295
+ Log .e(TAG , " 点击返回" )
296
296
}
297
297
298
298
}
0 commit comments