Skip to content

Commit 07a6286

Browse files
committed
Add function to monitor the redenvelope sent by myself.
1 parent 0d52154 commit 07a6286

File tree

7 files changed

+46
-18
lines changed

7 files changed

+46
-18
lines changed

README.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,11 @@ https://github.com/xbdcc/CUtils
2525
- 辅助功能开启【抢微信红包】,若使用默认参数则通知或聊天列表页面或群聊发现有红包,则会自动点击红包并拆开跳转到详情页自动关闭。
2626
- 通知监控开关说明:需要微信通知权限开启,此时若开启此功能收到通知有红包消息会自动跳转点击。
2727
- 聊天列表页监控开关说明:若打开则在微信首页列表也发现红包消息则会跳转到详情页点击。
28+
- 是否抢自己发的红包说明:若打开则自己发的红包也会去抢。
2829
- 延迟时间说明:为防止秒抢拉仇恨加了延迟功能,延迟可以选择0-9秒。
2930
- 自定义拆红包坐标点说明:自定义红包拆按钮的横纵坐标,解决部分Android7.0以上机型无法自动拆红包的问题。
3031

31-
最新版适配微信7.0.3,7.0.4,7.0.5,7.0.8,7.0.9,7.0.10,7.0.11,7.0.12版本,代码开源仅供学习使用,请勿用作商业用途。
32-
32+
最新版适配微信7.0.3,7.0.4,7.0.5,7.0.8,7.0.9,7.0.10,7.0.11,7.0.12,7.0.16版本,代码开源仅供学习使用,请勿用作商业用途。
3333

3434

3535

@@ -55,6 +55,8 @@ https://github.com/xbdcc/CUtils
5555

5656

5757
## 版本说明
58+
### v3.2.0(2020.07.27)
59+
适配微信7.0.16,增加是否抢自己发的红包开关。
5860
### v3.1.0(2020.03.14)
5961
适配微信7.0.11,7.0.12。
6062
### v3.0.0(2020.01.22)

app/build.gradle

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ android {
3434
targetSdkVersion 28
3535
versionCode 12
3636
versionName "3.2.0"
37-
flavorDimensions "11" //和versionCode相同
37+
flavorDimensions "12" //和versionCode相同
3838
ndk {
3939
//选择要添加的对应 cpu 类型的 .so 库。
4040
abiFilters 'armeabi-v7a', 'x86'
@@ -149,7 +149,6 @@ dependencies {
149149

150150
// debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.4'
151151

152-
153152
}
154153
repositories {
155154
mavenCentral()

app/src/main/java/com/carlos/grabredenvelope/dao/WechatControlVO.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ data class WechatControlVO(
4343
@Transient
4444
var isMonitorNotification: Boolean = true, //是否监控通知
4545
var isMonitorChat: Boolean = true, //是否监控聊天列表页面
46+
var ifGrabSelf: Boolean = true, //是否抢自己发的红包
4647
@Transient
4748
var delayOpenTime: Int = 0,
4849
@Transient

app/src/main/java/com/carlos/grabredenvelope/fragment/ControlFragment.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,12 @@ class ControlFragment : BaseFragment(R.layout.fragment_control), SeekBar.OnSeekB
8080
}
8181
cb_wechat_chat_control.setOnCheckedChangeListener { buttonView, isChecked ->
8282
wechatControlVO.isMonitorChat = isChecked
83-
LogUtils.d("ismotior:" + isChecked)
83+
// LogUtils.d("ismotior:" + isChecked)
84+
RedEnvelopePreferences.wechatControl = wechatControlVO
85+
}
86+
cb_if_grab_self.setOnCheckedChangeListener { buttonView, isChecked ->
87+
wechatControlVO.ifGrabSelf = isChecked
88+
// LogUtils.d("ifGrabSelf:" + isChecked)
8489
RedEnvelopePreferences.wechatControl = wechatControlVO
8590
}
8691

@@ -123,6 +128,7 @@ class ControlFragment : BaseFragment(R.layout.fragment_control), SeekBar.OnSeekB
123128
cb_wechat_notification_control.isChecked =
124129
RedEnvelopePreferences.wechatControl.isMonitorNotification
125130
cb_wechat_chat_control.isChecked = RedEnvelopePreferences.wechatControl.isMonitorChat
131+
cb_if_grab_self.isChecked = RedEnvelopePreferences.wechatControl.ifGrabSelf
126132
LogUtils.d("wechatControl:" + RedEnvelopePreferences.wechatControl.toString())
127133

128134
wechatControlVO = RedEnvelopePreferences.wechatControl

app/src/main/java/com/carlos/grabredenvelope/services/WechatService.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,9 +123,9 @@ class WechatService : BaseAccessibilityService() {
123123
private fun grabRedEnvelope() {
124124
// LogUtils.d("grabRedEnvelope")
125125
/* 发现红包点击进入领取红包页面 */
126-
126+
val ifGrabSelf = RedEnvelopePreferences.wechatControl.ifGrabSelf
127127
if (findAndClickFirstNodeInfoByViewId(
128-
RED_ENVELOPE_ID, RED_ENVELOPE_FLAG_ID, RED_ENVELOPE_BEEN_GRAB_ID, true
128+
RED_ENVELOPE_ID, RED_ENVELOPE_FLAG_ID, RED_ENVELOPE_BEEN_GRAB_ID, !ifGrabSelf, true
129129
)
130130
) {
131131
status = HAS_CLICKED

app/src/main/res/layout/fragment_control.xml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,29 @@
105105
android:checked="true"
106106
android:button="@drawable/switch_course_control"/>
107107
</LinearLayout>
108+
109+
<LinearLayout
110+
android:layout_width="match_parent"
111+
android:layout_height="wrap_content"
112+
android:layout_marginTop="5dp"
113+
android:orientation="horizontal"
114+
android:gravity="center">
115+
<TextView
116+
android:layout_width="wrap_content"
117+
android:layout_height="wrap_content"
118+
android:textSize="@dimen/text_size_small"
119+
android:text="是否抢自己发的红包:"
120+
android:layout_centerHorizontal="true"/>
121+
<CheckBox
122+
android:id="@+id/cb_if_grab_self"
123+
android:layout_width="60dp"
124+
android:gravity="center"
125+
android:layout_height="wrap_content"
126+
android:layout_marginLeft="15dp"
127+
android:checked="true"
128+
android:button="@drawable/switch_course_control"/>
129+
</LinearLayout>
130+
108131
<View
109132
android:layout_marginTop="10dp"
110133
android:layout_marginBottom="10dp"

app/src/main/res/values/strings.xml

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,25 +7,22 @@
77
<string name="grab_dingding_envelope">抢钉钉红包</string>
88

99
<string name="how_to_use">
10-
该版本适配微信7.0.3,7.0.4,7.0.5,7.0.8,7.0.9,7.0.10,7.0.11,7.0.12,其他版本未适配可能无效。长时间服务后台可能被杀,如果服务被杀需要重新开启无障碍服务
10+
该版本适配微信7.0.3,7.0.4,7.0.5,7.0.8,7.0.9,7.0.10,7.0.11,7.0.12,7.0.16,其他版本未适配可能无效。长时间服务后台可能被杀,如果服务被杀需要关闭重新开启无障碍服务
1111
\n\n控制说明:
1212
\n1.微信红包监控开关:点击进入设置找到无障碍服务辅助功能开启【抢微信红包】,开启后下面操作才有效;
1313
\n2.通知监控开关:开启后通知收到微信红包则会自动点击该通知,若开启后无效请确认通知权限是否开启;
1414
\n3.聊天列表页监控开关:开启后停留在首页聊天列表页时会监听,若收到红包会自动点击;
15-
\n4.领红包延迟时间:设置时间后拆红包会停留设置的时间后点击;
16-
\n5.红包领取页关闭时间:设置后在红包领取详情页面会停留设置的时间后关闭;
17-
\n6.自定义拆红包按钮坐标:该功能针对Android7.0以上设备开放,为了解决之前版本出现的部分机型会自动点击红包但不会自动拆的问题,开启后才有效。
15+
\n4.是否抢自己发的红包:开启则自己发的也会抢;
16+
\n5.领红包延迟时间:设置时间后拆红包会停留设置的时间后点击;
17+
\n6.红包领取页关闭时间:设置后在红包领取详情页面会停留设置的时间后关闭;
18+
\n7.自定义拆红包按钮坐标:该功能针对Android7.0以上设备开放,为了解决之前版本出现的部分机型会自动点击红包但不会自动拆的问题,开启后才有效。
1819
关于如何找红包坐标点的方法有很多种,简书上之前分享的文章《Android通过辅助功能实现抢微信红包原理简单介绍》,图3其实就可以看到坐标范围,
1920
这里介绍手机上查看的两个方法,设置里开发者选项中的显示指针位置或显示布局边界,然后在红包弹窗手指触摸顶部可以看到x坐标和y坐标,使用比较简单详情可百度。
20-
\n
21-
\n\n已知的bug有:
22-
\n若出现文字与红包文字相同则也会点击
23-
\n若红包没领完则还会继续点击
2421
\n\n
2522
\n代码开源仅供学习使用,请勿用作商业用途
26-
\nAPP说明:http://xbdcc.cn/GrabRedEnvelope/index.html
27-
\n代码地址:https://github.com/xbdcc/GrabRedEnvelope
28-
\n\简单教程:https://github.com/xbdcc/GrabRedEnvelope/blob/master/demo/README.md
23+
<!-- \nAPP说明:http://xbdcc.cn/GrabRedEnvelope/index.html-->
24+
<!-- \n代码地址:https://github.com/xbdcc/GrabRedEnvelope-->
25+
<!-- \n\简单教程:https://github.com/xbdcc/GrabRedEnvelope/blob/master/demo/README.md-->
2926
\n
3027
</string>
3128

0 commit comments

Comments
 (0)