Android用AccessibilityService 辅助服务实现微信抢红包APP

安卓微信自动抢红包插件优化和实现 转载请注明作者AndroidMSky和链接http://blog.csdn.net/AndroidMsky/article/details/53490459 又是兴趣系列 网上有很多自动强红包的例子和代码,笔者也是做了一些优化。 先说说自己的两个个优势 1.可以在聊天界面自动强不依赖于通知栏推送 2.可以在屏幕熄灭的时候的时候点亮屏幕自动抢(目前只测过flyme) 先上图:代码传送门: 阅读详情

Accessibility Service 可以替代应用与用户交流反馈。

抢红包APP的主要思路:当通知栏出现包含“[微信红包]”关键字的微信消息,就自动跳转到该消息的聊天界面,然后找到微信红包对应的View并模拟点击打开红包和拆红包。


下面以抢红包APP为例,详解其使用方法:

一、创建Accessibility Service

创建一个继承于AccessibilityService的类,并在manifest文件中声明这个Service。标明它监听处理android.accessibilityservice.AccessibilityService事件,声明android.permission.BIND_ACCESSIBILITY_SERVIC权限。由于这是系统级服务,安装后还需要用户在“设置”—->“辅助功能”中给该应用授权。

<service             
    android:label="@string/app_name"
    android:name=".QiangHongBaoService"
    android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE"
    >
    <intent-filter>
        <action android:name="android.accessibilityservice.AccessibilityService"/>
    </intent-filter>
    <meta-data 
        android:name="android.accessibilityservice"
        android:resource="@xml/qianghongbao_service_config"
    />
</service>


二、配置Accessibility Service

方法一:Java代码中配置

重写onServiceConnected()方法,并在这里进行Service的配置。

@Override
public void onServiceConnected() {
    AccessibilityServiceInfo info = new AccessibilityServiceInfo();    
    // 需要响应的事件类型
    // 此处为通知栏变化事件、界面变化事件
    info.eventTypes = AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED |
            AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED;
    // 如不指定包名,则此服务对所有应用有效
    // 此处指定微信包名
    info.packageNames = new String[]{"com.tencent.mm"};
    // 设置使用的反馈类型
    // 此处设为通用类型
    info.feedbackType = AccessibilityServiceInfo.FEEDBACK_GENERIC;
    // 设置响应时间
    info.notificationTimeout = 100;
    // 应用参数
    this.setServiceInfo(info);

}

方法二:XML文件中配置

从Android4.0开始可以res/xml/目录下添加配置文件,并在manifest文件中通过< meta-data >标签指定。一些特性的选项比如canRetrieveWindowContent仅仅可以在XML可以配置。

<?xml version="1.0" encoding="utf-8"?>
<accessibility-service
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:description="@string/accessibility_description"
    android:accessibilityEventTypes="typeNotificationStateChanged|typeWindowStateChanged"
    android:packageNames="com.tencent.mm"
    android:accessibilityFeedbackType="feedbackGeneric"
    android:notificationTimeout="100"
    android:accessibilityFlags=""
    android:canRetrieveWindowContent="true"/>
android:description 设置服务的描述,在用户授权的界面可以看到。

android:accessibilityEventTypes 配置要监听的辅助事件。上面只用到typeNotificationStateCha

AndroidAccessibilityService辅助功能基础使用(附微信抢红包教程) 注意需要加上BIND_ACCESSIBILITY_SERVICE权限。代码片段2中的meta部分是AccessibilityService的配置信息,这是android 4.0后才支持的,代码如下:// 代码片段3设置配置信息还有第二种方法,就是在onServiceConnected()方法中使用代码设置,如代码片段1中的注释部分所示。 阅读详情

相关推荐

AccessibilityService+OpenCV实现微信7.0.0抢红包插件

#引言 提起AccessibilityService首先想到的肯定是抢红包插件。没错,目前基本上抢红包插件分为两类:root和免root,而免root的红包插件全是基于AccessibilityService。随着AccessibilityService的广泛应用,现今已经有比较多的方法可以防御基于AccessibilityService实现的自动化插件了。有兴趣的朋友可以参考这篇文章:红包外挂史...

LiangZuo的博客 3546

Android 辅助功能服务AccessibilityService

Android提供辅助功能服务的目的在于帮助那些具有视觉、身体或年龄相关限制的用户更轻松的使用Android设备和应用,例如当用户悬停在屏幕的重要区域上时将文本转换为语音或触觉反馈,从而使一些有视力缺陷的用户也能够使用。除此之外,我们还可以使用AccessibilityService将一些人工操作进行自动化处理,从而将人从这些无聊繁琐的重复操作中解放出来。 1、首先需要定义一个继承自AccessibilityService服务(这里命名为MyAccessibilityService),并在Android

jgw2008的专栏 1547

AccessibilityService微信抢红包辅助功能实现

这次我们来使用AccessibilityService实现一个微信抢红包辅助工具。 先来一个简单的效果图,最后会有一个完整的效果图:     首先,先回想一下微信红包的领取流程。 1.通知栏出现微信红包的消息 2.点击通知栏,进入领取红包界面 3.点击领取红包,领取成功后,进入拆红包界面 4.拆红包,显示获得金额 5.等待下一个红包

安卓世界库 2037

分布式中间件-Redis(抢红包系统)

整体业务模块: 1,发红包模块:处理发红包的逻辑业务; 2,抢红包模块:分成点红包和拆红包模块; 3,数据库模块:发红包记录,抢红包记录,红包详情; 4,redis模块:缓存红包个数和金额; 第一步先构建数据库:创建3个表分别是发红包记录表,抢红包记录表,红包详情表; 第二步搭建开发环境,利用mybatis的逆向工程生成表对应的实体类,操作数据的mapper和配置文件mapper.xml; ...

gl2586917的博客 904

Android无障碍服务( Accessibility Service)应用

    无障碍服务是一个应用程序,它给有残疾的用户或暂时无法与设备完全交互的用户提供了更好的无障碍用户交互功能。比如驾驶、照顾小孩或者在吵闹的派对上可能需要额外或者替代的交互反馈。    Android提供了标准的无障碍服务,包括TalkBack,开发人员可以创建和发布自己的无障碍服务。    Android从1.6(API 4)开始引入了构建和部署无障碍服务的能力,并在Android 4.0(A...

潘洪金的博客 2万+

抢红包插件实现原理浅析

抢红包,先看效果图~ 实现自动抢红包,解决问题有两点: 一:如何实时监听发红包的事件 二:如何在红包到来的时候自动进入页面并自动点击红包 一、如何获取红包到来的事件为了获取红包到来状态栏的变化,我们要用到一个类:Accessibility 许多Android使用者因为各种情况导致他们要以不同的方式与手机交互。 这包括了有些用户由于视力上,身体上,年

积少成多,努力,谦逊,进取。 1万+

玩转Android之手摸手教你DIY一个抢红包神器

AccessibilityService是Google专门为残障人士设计的一个服务,可以让他们更方便的来操作手机。AccessibilityService一个主要功能是通过监听窗口的变化来判断用户当前正在做什么,它可以监听到窗口焦点的变化,Activity的跳转,Activity中View的变化等等,通过监听窗口的这些变化我们来猜测用户正在做什么,从而模拟出一些操作。很早的时候,一些应用市场想...

weixin_30902675的博客 362

详解安卓辅助功能服务AccessibilityService(无障碍服务微信抢红包助手原理)

在手机的更多设置或者高级设置中,我们会发现有个无障碍的功能,很多人不知道这个功能具体是干嘛的,包括我们开发也很少接触这部分功能,以至于对这块不甚了解。前段时间在同事的安利下去了解了下这部分功能。在这里和大家浅谈下自己对这个功能的理解和部分运用。这边打算从 “是什么,为什么,怎么用,好不好”几个方面来说无障碍服务是一种应用程序,给有残疾的用户或暂时无法与设备完全交互的用户提供了更好的无障碍用户交互功能。比如驾驶、照顾小孩或者在吵闹的派对上可能需要额外或者替代的交互反馈。

qq_24428851的博客 3520

android微信抢红包插件

前言  之前看到了微信抢红包的插件,觉得这个功能实在强大了,这和之前我想实现的模拟点击事件基本相似,可以完美的触发一个view的点击事件,当然静默安装的原理也和抢红包的原理是一样的。  小米有开源小米的抢红包的demo,之后有童鞋在此之上增加了自己的逻辑,使其完善。现在为了学习,我也加入抢红包的demo大军哈哈,主要在于学习。原理  原理主要是通过辅助功能AccessibilityService来完

徒步行走于未知,爱上呼吸空气 4560

android 辅助功能(无障碍) AccessibilityService 实战入门详解

本君初入辅助功能也是一头雾水,各种百度结果还是一知半解,得到的大多都是对辅助功能类的翻译,仅仅是理论层面上,到实战上确是千差万别,在此记之。 一、原理:大致简述一下,谷歌已经在View、ViewGroup、TextView等控件的文字改变、滑动、UI变化埋下了接口,当这些状态变化时控件会回调系统API,API系统然后对这些对象的数据进行组装,为了数据的安全性,系统会重新创建一些对象(AccessibilityEvent、AccessibilityNodeInfo)来间接保存这些数据,然后通过跨进程将这些数据

Venus 的博客 8076

Android-无障碍服务AccessibilityService

什么是无障碍服务? 无障碍服务AccessibilityService)是一套可以模拟操作的系统级别的API。用户同意我们的应用获取无障碍服务的权限之后就可以模拟操作,来控制用户的手机。无障碍被广泛用于抢红包、自动回复、一键获取权限等应用中。 无障碍服务的好处很多,可以实现一键操作,帮助残障人士使用手机。当然坏处也有,开启无障碍服务以后,因为服务对手机的实时监控,会引起手机的卡顿。这个怎么优化我们待会会说到。 无障碍服务文档和说明 以下我将结合各大博主的文章、Google官方文档对无障碍服务进行一

江小白的博客 1万+

一步一步实现微信抢红包

圣诞过后,又到了抢红包的季节。各个公司的年会将逐渐展开,各个红包群就热闹了起来。为了应对领导在群里时不时的一个红包,写一个抢红包的应用迫在眉睫了。之前由于没有自动抢红包错失了100+的红包啊!

hukuhy的博客 6066

Android-AccessibilityService

此类表示Window Content中的一个Node。继承自AccessibilityRecord,表示当用户界面中发生了关注事件时系统发送的事件。表示AccessibilityEvent中的一条记录,并包含有关其Source View的状态更改的信息。当View发生改变时,会发出一个AccessibilityEvent出来,这个Event会通过Binder驱动发送给IAccessibilityServiceClientWrapper,调用他的。

Android_XG的博客 2103
上一篇: Android meta-data(未完成)
下一篇: Android 获取当前APP和系统的版本信息
KingLearnJava
博客等级 码龄12年 93粉丝 84原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值