Skip to content

Commit bcb9764

Browse files
committed
适配微信6.7.2版本
1 parent 3a89de5 commit bcb9764

File tree

2 files changed

+54
-60
lines changed

2 files changed

+54
-60
lines changed

app/src/main/java/com/coderpig/wechathelper/ControlActivity.kt

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -35,37 +35,33 @@ class ControlActivity : AppCompatActivity() {
3535
}
3636
ed_friends.setText(sb.toString())
3737
}
38-
39-
btn_sure.setOnClickListener({
38+
btn_sure.setOnClickListener {
4039
Hawk.put(Constant.GROUP_NAME, ed_group_name.text.toString())
4140
shortToast("群聊名称已保存!")
42-
})
43-
btn_clear.setOnClickListener({
41+
}
42+
btn_clear.setOnClickListener {
4443
Hawk.put(Constant.GROUP_NAME, "")
4544
shortToast("群聊名称已清除!")
4645
ed_group_name.setText("")
47-
})
48-
49-
btn_write.setOnClickListener({
46+
}
47+
btn_write.setOnClickListener {
5048
val memberList = (ed_friends.text.toString()).split("\n").filter{it.trim() != ""}
5149
Hawk.put(Constant.MEMBER_LIST, memberList)
5250
Log.e("Test",memberList.toString())
5351
shortToast("数据写入成功!")
54-
})
55-
56-
btn_reset.setOnClickListener({
52+
}
53+
btn_reset.setOnClickListener {
5754
Hawk.put(Constant.MEMBER_LIST, mutableListOf<String>())
5855
ed_friends.setText("")
5956
shortToast("数据重置成功!")
60-
})
61-
57+
}
6258
btn_open_wechat.setOnClickListener {
6359
val intent = packageManager.getLaunchIntentForPackage("com.tencent.mm")
6460
startActivity(intent)
6561
}
66-
btn_open_accessbility.setOnClickListener({
62+
btn_open_accessbility.setOnClickListener {
6763
startActivity(Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS))
68-
})
64+
}
6965
cb_add_friends.setOnCheckedChangeListener { _, isChecked ->
7066
if (isChecked) Hawk.put(Constant.ADD_FRIENDS, true) else Hawk.put(Constant.ADD_FRIENDS, false)
7167
}
@@ -76,6 +72,4 @@ class ControlActivity : AppCompatActivity() {
7672
if (isChecked) Hawk.put(Constant.RED_PACKET, true) else Hawk.put(Constant.RED_PACKET, false)
7773
}
7874
}
79-
80-
8175
}

app/src/main/java/com/coderpig/wechathelper/HelperService.kt

Lines changed: 44 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@ package com.coderpig.wechathelper
22

33
import android.accessibilityservice.AccessibilityService
44
import android.app.Notification
5-
import android.app.PendingIntent
6-
import android.content.ContentValues.TAG
5+
import android.app.PendingIntent.CanceledException
76
import android.os.Bundle
87
import android.os.Handler
98
import android.util.Log
@@ -37,15 +36,15 @@ class HelperService : AccessibilityService() {
3736
"com.tencent.mm.ui.LauncherUI" -> openGroup()
3837
"com.tencent.mm.ui.contact.ChatroomContactUI" -> searchGroup()
3938
"com.tencent.mm.ui.chatting.ChattingUI" -> openGroupSetting()
40-
"com.tencent.mm.plugin.chatroom.ui.ChatroomInfoUI" -> openSelectContact()
39+
"com.tencent.mm.chatroom.ui.ChatroomInfoUI" -> openSelectContact()
4140
"com.tencent.mm.ui.contact.SelectContactUI" -> addMembers()
4241
}
4342
}
4443
if (className == "com.tencent.mm.ui.widget.a.c") {
4544
dialogClick()
4645
}
4746
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") {
4948
autoZan()
5049
}
5150
}
@@ -66,39 +65,36 @@ class HelperService : AccessibilityService() {
6665
val pendingIntent = notification.contentIntent
6766
try {
6867
pendingIntent.send()
69-
} catch (e: PendingIntent.CanceledException) {
68+
} catch (e: CanceledException) {
7069
e.printStackTrace()
7170
}
7271

7372
}
7473
}
7574
}
7675

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+
// }
8582
}
86-
8783
}
8884

8985

9086
//1.打开群聊
9187
private fun openGroup() {
9288
val nodeInfo = rootInActiveWindow
9389
if (nodeInfo != null) {
94-
val tabNodes = nodeInfo.findAccessibilityNodeInfosByViewId("com.tencent.mm:id/cdj")
90+
val tabNodes = nodeInfo.findAccessibilityNodeInfosByViewId("com.tencent.mm:id/chq")
9591
for (tabNode in tabNodes) {
9692
if (tabNode.text.toString() == "通讯录") {
9793
tabNode.parent.performAction(AccessibilityNodeInfo.ACTION_CLICK)
9894
handler.postDelayed({
9995
val newNodeInfo = rootInActiveWindow
10096
if (newNodeInfo != null) {
101-
val tagNodes = newNodeInfo.findAccessibilityNodeInfosByViewId("com.tencent.mm:id/k3")
97+
val tagNodes = newNodeInfo.findAccessibilityNodeInfosByViewId("com.tencent.mm:id/li")
10298
for (tagNode in tagNodes) {
10399
if (tagNode.text.toString() == "群聊") {
104100
tagNode.parent.parent.performAction(AccessibilityNodeInfo.ACTION_CLICK)
@@ -116,7 +112,7 @@ class HelperService : AccessibilityService() {
116112
private fun searchGroup() {
117113
val nodeInfo = rootInActiveWindow
118114
if (nodeInfo != null) {
119-
val nodes = nodeInfo.findAccessibilityNodeInfosByViewId("com.tencent.mm:id/aaq")
115+
val nodes = nodeInfo.findAccessibilityNodeInfosByViewId("com.tencent.mm:id/ad_")
120116
for (info in nodes) {
121117
if (info.text.toString() == Hawk.get(Constant.GROUP_NAME)) {
122118
info.parent.performAction(AccessibilityNodeInfo.ACTION_CLICK)
@@ -130,7 +126,7 @@ class HelperService : AccessibilityService() {
130126
private fun openGroupSetting() {
131127
val nodeInfo = rootInActiveWindow
132128
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)
134130
}
135131
}
136132

@@ -146,7 +142,7 @@ class HelperService : AccessibilityService() {
146142
val scrollNodeInfo = rootInActiveWindow
147143
if (scrollNodeInfo != null) {
148144
handler.postDelayed({
149-
val nodes = scrollNodeInfo.findAccessibilityNodeInfosByViewId("com.tencent.mm:id/d4_")
145+
val nodes = scrollNodeInfo.findAccessibilityNodeInfosByViewId("com.tencent.mm:id/d93")
150146
for (info in nodes) {
151147
if (info.contentDescription.toString() == "添加成员") {
152148
info.parent.performAction(AccessibilityNodeInfo.ACTION_CLICK)
@@ -167,7 +163,7 @@ class HelperService : AccessibilityService() {
167163
handler.postDelayed({
168164
val nodeInfo = rootInActiveWindow
169165
if (nodeInfo != null) {
170-
val editNodes = nodeInfo.findAccessibilityNodeInfosByViewId("com.tencent.mm:id/au7")
166+
val editNodes = nodeInfo.findAccessibilityNodeInfosByViewId("com.tencent.mm:id/cmz")
171167
if (editNodes != null && editNodes.size > 0) {
172168
val editNode = editNodes[0]
173169
val arguments = Bundle()
@@ -177,7 +173,7 @@ class HelperService : AccessibilityService() {
177173
}
178174
}, 500L * (i + 1))
179175
handler.postDelayed({
180-
val cbNodes = rootInActiveWindow.findAccessibilityNodeInfosByViewId("com.tencent.mm:id/lp")
176+
val cbNodes = rootInActiveWindow.findAccessibilityNodeInfosByViewId("com.tencent.mm:id/nq")
181177
if (cbNodes != null) {
182178
val cbNode: AccessibilityNodeInfo?
183179
if (cbNodes.size > 0) {
@@ -188,7 +184,7 @@ class HelperService : AccessibilityService() {
188184
//最后一次的时候清空记录,并且点击顶部确定按钮
189185
if (i == members.size - 1) {
190186
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")
192188
if (sureNodes != null && sureNodes.size > 0) {
193189
sureNodes[0].performAction(AccessibilityNodeInfo.ACTION_CLICK)
194190
}
@@ -201,15 +197,13 @@ class HelperService : AccessibilityService() {
201197

202198
//对话框自动点击
203199
private fun dialogClick() {
204-
val inviteNode = rootInActiveWindow.findAccessibilityNodeInfosByViewId("com.tencent.mm:id/an3")[0]
205-
inviteNode.performAction(AccessibilityNodeInfo.ACTION_CLICK)
206200
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]
210204
sureNode.performAction(AccessibilityNodeInfo.ACTION_CLICK)
211205
}
212-
}, 1000L)
206+
}, 500L)
213207
performBackClick()
214208
}
215209

@@ -220,21 +214,21 @@ class HelperService : AccessibilityService() {
220214
while (true) {
221215
val rootNode = rootInActiveWindow
222216
if (rootNode != null) {
223-
val listNodes = rootNode.findAccessibilityNodeInfosByViewId("com.tencent.mm:id/dja")
217+
val listNodes = rootNode.findAccessibilityNodeInfosByViewId("com.tencent.mm:id/dor")
224218
if (listNodes != null && listNodes.size > 0) {
225219
val listNode = listNodes[0]
226-
val zanNodes = listNode.findAccessibilityNodeInfosByViewId("com.tencent.mm:id/dg4")
220+
val zanNodes = listNode.findAccessibilityNodeInfosByViewId("com.tencent.mm:id/dlk")
227221
for (zan in zanNodes) {
228222
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)
232226
if (zsNodes != null && zsNodes.size > 0) {
233227
if (zsNodes[0].findAccessibilityNodeInfosByText("").size > 0) {
234228
zsNodes[0].performAction(AccessibilityNodeInfo.ACTION_CLICK)
235229
}
236230
}
237-
Thread.sleep(300)
231+
Thread.sleep(500)
238232
}
239233
listNode.performAction(AccessibilityNodeInfo.ACTION_SCROLL_FORWARD)
240234
}
@@ -249,26 +243,31 @@ class HelperService : AccessibilityService() {
249243
private fun openRedPacket() {
250244
val rootNode = rootInActiveWindow
251245
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+
}
261258
}
262259
}
263260
}
264261
}
262+
263+
265264
}
266265
}
267266

268267
//打开红包
269268
private fun clickRedPacket() {
270269
val nodeInfo = rootInActiveWindow
271-
val clickNode = nodeInfo.findAccessibilityNodeInfosByViewId("com.tencent.mm:id/c85")
270+
val clickNode = nodeInfo.findAccessibilityNodeInfosByViewId("com.tencent.mm:id/cb2")
272271
if (clickNode != null && clickNode.size > 0) {
273272
clickNode[0].performAction(AccessibilityNodeInfo.ACTION_CLICK)
274273
} else {
@@ -293,6 +292,7 @@ class HelperService : AccessibilityService() {
293292

294293
private fun performBackClick() {
295294
handler.postDelayed({ performGlobalAction(AccessibilityService.GLOBAL_ACTION_BACK) }, 1300L)
295+
Log.e(TAG, "点击返回")
296296
}
297297

298298
}

0 commit comments

Comments
 (0)