使用AccessibilityService来做一个自动抢红包插件

1 简介

AccessibilityService中文翻译是辅助功能,本意是帮助残障人士来方便使用手机的功能。因为其可以全局监听和发送事件,所以我们可以通过这个功能来进行一些“僭越”的操作,比如自动抢红包,修改键值等。

查看Android官方网站关于accessibilityservice介绍,如下:

原文:
The classes in this package are used for development of accessibility service that provide alternative or augmented feedback to the user.
An AccessibilityService runs in the background and receives callbacks by the system when AccessibilityEvents are fired. Such events denote some state transition in the user interface, for example, the focus has changed, a button has been clicked, etc. Such a service can optionally request the capability for querying the content of the active window. Development of an accessibility service requires extends this class and implements its abstract methods.
An AccessibilityServiceInfo describes an AccessibilityService. The system notifies an AccessibilityService for AccessibilityEvents according to the information encapsulated in this class.
Accessibility events are messages about users interaction with visual interface components in your application. These messages are handled by Accessibility Services.
翻译:
accessibilityservice包下的类用来开发能提供可选或扩展的反馈给用户的服务。
一个AccessibilityService在后台运行,并且在AccessibilityEvent发出时接收系统回调。这些事件显示了用户界面上某些状态发生改变——比如焦点变化,按钮点击等。这个类可以查看当前活动窗口的内容。如果要使用这些功能,你需要继承AccessibilityService类并实现其中的抽象方法。
一个AccessibilityServiceInfo描述了一个AccessibilityService。系统通过将信息装在AccessibilityServiceInfo类中,通知AccessibilityService发生了AccessibilityEvent。
AccessibilityEvent是关于用户和界面交互的信息,并由AccessibilityService来处理。

https://developer.android.google.cn/reference/android/accessibilityservice/package-summary
https://developer.android.google.cn/training/accessibility/service

2 使用

1、创建一个继承自AccessibilityService的类,并在manifest中定义。

public class RedPacketService extends AccessibilityService {

    @Override
    public void onAccessibilityEvent(AccessibilityEvent event) {
    }

    @Override
    public void onInterrupt() {
    }

}

2、配置自定义的AccessibilityService。也就是说,定义何时需要执行处理,何时不需要。
我们可以通过代码中,或者xml文件进行配置。这里只介绍xml配置模式,因为在代码中某些设置是不可用的。

创建redpacket_accessibility_config.xml文件如下:

<?xml version="1.0" encoding="utf-8"?>
<accessibility-service xmlns:android="http://schemas.android.com/apk/res/android"
    android:accessibilityEventTypes="typeViewClicked|typeViewFocused|typeNotificationStateChanged"
    android:canRetrieveWindowContent="true"
    android:notificationTimeout="100" />

并在manifest中加入如下meta-data标签:

<service android:name=".RedPacketService">
    <intent-filter>
        <action android:name="android.accessibilityservice.AccessibilityService" />
    </intent-filter>
    <meta-data
        android:name="android.accessibilityservice"
        android:resource="@xml/redpacket_accessibility_config" />
</service>

好了,大功告成,这时候一个基本的辅助功能就实现了,我们可以在RedPacketService中处理事件了。

3 利用辅助功能抢红包

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值