1. 程式人生 > >自動搶紅包-輔助功能的使用

自動搶紅包-輔助功能的使用

最近了解了一下這方面的知識,參考網上的一些部落格,自己再完善了一下,寫了一個自動搶紅包的app.
本應用支援QQ和微信掛後臺時自動搶紅包 支援在微信和QQ的訊息列表頁面自動搶紅包 支援在QQ群和單個好友訊息會話頁面自動搶紅包 不支援在單個微信聊天頁面自動搶 其實主要是AccessibilityService相關的一些知識,可以參考android 文件,以下是國內的連結. 具體程式碼如下:

一.服務的宣告和許可權

1.服務與許可權的宣告

首先需要在AndroidManifest.xml 裡面宣告一下AccessibilityService,並指定對應的服務配置文為accessibilityservice.xml.這一部分的配置可以直接在android的文件上面拷貝就可以,再根據需要調整
  1. <service
  2. android:name=".RobMonkeyAccessibilityService"
  3. android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">
  4. <intent-filter>
  5. <actionandroid:name="android.accessibilityservice.AccessibilityService"/>
  6. </intent-filter>
  7. <meta-dataandroid:name="android.accessibilityservice"
    android:resource="@xml/accessibilityservice"/>
  8. </service>
由於實際功能中涉及到熄屏時自動亮屏並解鎖手機,所以還要新增幾個許可權:
  1. <uses-permissionandroid:name="android.permission.DISABLE_KEYGUARD"/>
  2. <uses-permissionandroid:name="android.permission.WAKE_LOCK"/>

2.服務的配置

accessibilityservice.xml
這裡定義了需要幾個主要項:
a.監聽的狀態: android:accessibilityEventTypes="typeNotificationStateChanged|typeWindowStateChanged|typeWindowContentChanged" 通知的改變(可以理解為有新通知來了沒有);視窗的改變(主要是activity變了沒有);視窗內容是否有變(主要是微信裡面有用到fargement,所以只是內容變了,Activity沒有變) b.監聽的應用 android:packageNames="com.tencent.mm,com.tencent.mobileqq"
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <accessibility-servicexmlns:android="http://schemas.android.com/apk/res/android"
  3. android:accessibilityEventTypes="typeNotificationStateChanged|typeWindowStateChanged|typeWindowContentChanged"
  4. android:accessibilityFeedbackType="feedbackGeneric"
  5. android:accessibilityFlags="flagDefault"
  6. android:canRetrieveWindowContent="true"
  7. android:notificationTimeout="100"
  8. android:packageNames="com.tencent.mm,com.tencent.mobileqq"/>

二.AccessibilityService 的繼承實現

主要是AccessibilityService的一些使用,其中還有涉及到亮屏和解鎖相關的一些東西.
  1. package com.doov.robmoney;
  2. import android.accessibilityservice.AccessibilityService;
  3. import android.annotation.SuppressLint;
  4. import android.app.KeyguardManager;
  5. import android.app.Notification;
  6. import android.app.PendingIntent;
  7. import android.content.Context;
  8. import android.os.PowerManager;
  9. import android.util.Log;
  10. import android.view.accessibility.AccessibilityEvent;
  11. import android.view.accessibility.AccessibilityNodeInfo;
  12. import java.util.List;
  13. publicclassRobMonkeyAccessibilityServiceextendsAccessibilityService{
  14. privatestaticfinalString TAG ="RobMonkeyAccessibilityService";
  15. /**
  16. * 是否可以點選紅包
  17. */
  18. privateboolean canGetMonkey =false;
  19. privateboolean isGetMonkey =false;
  20. /*當前視窗狀態*/
  21. privateint mWindowStatus = WINDOW_NONE;
  22. /*各種視窗狀態*/
  23. privatefinalstaticint WINDOW_LANUCHRE =1;
  24. privatefinalstaticint WINDOW_RECEIVERUI =2;
  25. privatefinalstaticint WINDOW_DETAILUI =3;
  26. privatefinalstaticint WINDOW_OTHER =4;
  27. privatefinalstaticint WINDOW_NONE =5;
  28. privatefinalstaticint WINDOW_QQ_LANUCHRE =6;
  29. privatePowerManager mPowerManager;
  30. privateKeyguardManager mKeyguardManager;
  31. privateKeyguardManager.KeyguardLock mKeyguardLock;
  32. privatePowerManager.WakeLock mWakeLock;
  33. privateboolean canGetQQMonkey =true;
  34. privateAccessibilityNodeInfo mLastMonkeyNode =null;
  35. package com.doov.robmoney;
  36. import android.accessibilityservice.AccessibilityService;
  37. import android.annotation.SuppressLint;
  38. import android.app.KeyguardManager;
  39. import android.app.Notification;
  40. import android.app.PendingIntent;
  41. import android.content.Context;
  42. import android.os.PowerManager;
  43. import android.util.Log;
  44. import android.view.accessibility.AccessibilityEvent;
  45. import android.view.accessibility.AccessibilityNodeInfo;
  46. import java.util.List;
  47. publicclassRobMonkeyAccessibilityServiceextendsAccessibilityService{
  48. privatestaticfinalString TAG ="RobMonkeyAccessibilityService";
  49. /**
  50. * 是否可以點選紅包
  51. */
  52. privateboolean canGetMonkey =false;
  53. privateboolean isGetMonkey =false;
  54. /*當前視窗狀態*/
  55. privateint mWindowStatus = WINDOW_NONE;
  56. /*各種視窗狀態*/
  57. privatefinalstaticint WINDOW_LANUCHRE =1;
  58. privatefinalstaticint WINDOW_RECEIVERUI =2;
  59. privatefinalstaticint WINDOW_DETAILUI =3;
  60. privatefinalstaticint WINDOW_OTHER =4;
  61. privatefinalstaticint WINDOW_NONE =5;
  62. privatefinalstaticint WINDOW_QQ_LANUCHRE =6;
  63. privatePowerManager mPowerManager;
  64. privateKeyguardManager mKeyguardManager;
  65. privateKeyguardManager.KeyguardLock mKeyguardLock;
  66. privatePowerManager.WakeLock mWakeLock;
  67. privateboolean canGetQQMonkey =true;
  68. privateAccessibilityNodeInfo mLastMonkeyNode =null;
  69. @Override
  70. publicvoid onAccessibilityEvent(AccessibilityEvent event){
  71. int eventType = event.getEventType();
  72. Log.d(TAG,"onAccessibilityEvent: eventType="+ eventType);
  73. switch(eventType){
  74. caseAccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED://64 有通知
  75. List<CharSequence> notifications = event.getText();
  76. if(notifications !=null){
  77. 相關推薦

    自動紅包-輔助功能的使用

    最近了解了一下這方面的知識,參考網上的一些部落格,自己再完善了一下,寫了一個自動搶紅包的app. 本應用支援QQ和微信掛後臺時自動搶紅包 支援在微信和QQ的訊息列表頁面自動搶紅包 支援

    輔助功能自動紅包

    hi大家好。 新年又來了,微信群裡又是各種紅包橫飛。作為技術人員的我們卻大可不必擔心一不小心,手速慢了點,又錯過了幾十萬。我們可以通過安卓的輔助功能來實現自己的微信自動搶紅包,安全又快捷。 輔助服務 我們在 設定->無障礙 中,就可以看到手機中所有的輔助服務了。

    使用Android輔助服務AccessibilityService實現的微信自動紅包的小程式

    WeiXinAssistant 微信助手,是一個使用Android輔助服務實現的微信自動搶紅包的小程式; 說明 通過利用AccessibilityService輔助服務,監測螢幕內容,如監聽狀態列的資訊,螢幕跳轉等,以此來實現自動拆紅包的功能。 邏輯 第一種方式:

    【Python】微博自動紅包

    cep group web asc ror 如果 script 4.0 linu # -*- coding: utf-8 -*- import requests import js2xml from lxml import etree headers =

    微信自動回覆和自動紅包實現原理(三):自動紅包

    經過前兩篇文章的閱讀,我相信大家應該對AccessibilityService有一定的瞭解了,是不是已經按捺不住,想自己動手試試?先別急,可以再看完我這篇文章還不遲,相信你另有收穫的。接下來我們來探索一下自動搶紅包的實現原理。 看了我第二篇微信自動回覆

    安卓微信自動紅包外掛優化和實現

    轉載請註明作者AndroidMSky和連結http://blog.csdn.net/AndroidMsky/article/details/53490459 又是興趣系列 網上有很多自動強紅包的例子和程式碼,筆者也是做了一些優化。 先說說自己的兩個個優勢

    某mo通過Xposed自動紅包

         最近鄙人接到一個分析某mo搶紅包的單子,於是在網上搜到很多關於搶紅包的例子,不過大多都是微信搶紅包的例子,因此分析的時候也對微信搶紅包進行了參考,要實現自動搶紅包得通過兩步實現:1.對紅包訊息的監聽,2.對紅包自動領取。     對紅包

    微信自動回覆和自動紅包實現原理(二):自動回覆

    完成AccessibilityService的配置後,好像無從下手。先別急,先列印一些log看看吧。把下面的方法放在onAccessibilityEvent()裡: private void printEventLog(Accessibilit

    iOS微信自動紅包實現(非越獄)

    微信紅包前言:最近筆者在研究iOS逆向工程,順便拿微信來練手,在非越獄手機上實現了微信自動搶紅包的功能。題外話:此教程是一篇嚴肅的學術探討類文章,僅僅用於學習研究,也請讀者不要用於商業或其他非法途徑上,筆者一概不負責喲~~好了,接下來可以進入正題了!此教程所需要的工具/檔案O

    WinForm 天貓2013雙11自動紅包【原始碼下載】

    1. 正確獲取紅包流程 2. 軟體介紹 2.1 效果圖: 2.2 功能介紹 2.2.1 賬號登入 頁面開始時,會載入這個網站:https://login.taobao.com/member/login.jhtml?redirect_url=http%3A%2F%2F1111.tmal

    iOS-一步一步實現iOS微信自動紅包(非越獄)

    微信紅包 前言:最近筆者在研究iOS逆向工程,順便拿微信來練手,在非越獄手機上實現了微信自動搶紅包的功能。 題外話:此教程是一篇嚴肅的學術探討類文章,僅僅用於學習研究,也請讀者不要用於商業或其他非法途徑上,筆者一概不負責喲~~ 好了,接下來可以進入正題了! 此教程所需要的工具/檔案 OpenSSH(

    AccessibilityService黑科技(微信自動紅包等)

      搶紅包應該是AccessibilityService火起來的最大因素。網上藉助AccessibilityService來實現的搶紅包外掛也是數不勝數,又是一個看上去很牛逼的功能。 『綠色守護』App的最基本無Root功能,通過在應用管理介面『結束程序』的方式來停止一個後臺

    Android開發-進階:實現微信自動紅包的程式

    簡單實現了微信自動搶紅包的服務,原理就是根據關鍵字找到相應的View, 然後自動點選。主要是用到AccessibilityService這個輔助服務,基本可以滿足自動搶紅包的功能,但是有些邏輯需要優化,比如,拆完一個紅包後,必須手動點選返回鍵,才能進行下一次自動搶紅包。

    Python自動紅包,超詳細教程,再也不會錯過微信紅包了!

    目錄: 0 引言 1 環境 2 需求分析 3 前置準備 4 搶紅包流程回顧 5 程式碼梳理 6 後記 0 引言 提到搶紅包,就不

    微信紅包外掛與Android輔助功能

          逢年過節大家都少不了發微信紅包,通過微信紅包來表達祝福。同時,微信還有拼手氣群紅包。各種群好友群,親戚群,工作群逢年過節常常會有紅包可搶。搶紅包的口訣是:“網速要好,手速要快”。搶到紅包固然欣喜,搶不到紅包的失落和遺憾的感覺卻讓人非常不爽。有時等紅包

    如何開發秒紅包自動收款功能

    簡要描述: 首先我們要先實現同步訊息,這個呼叫【同步聊天訊息】的介面後,可以得到實時的未讀訊息內容。然後從訊息中讀取一條,分析裡面的引數,來判斷是紅包,還是轉帳。 自動搶紅包: 取得單條訊息的Json字串 解析並取引數 【sub_type】 ,判斷其值是否為 【49

    Android通過輔助功能實現微信紅包原理簡單介紹

    簡書文章:https://www.jianshu.com/p/e1099a94b979 附搶紅包開源專案地址,程式碼已全改為Kotlin了,已適配到最新微信7.0.5版本,如果對你有所幫助賞個star吧:https://github.com/xbdcc/GrabRedEnvelope 前言 相信很多人見

    【轉】Android-Accessibility(輔助功能/無障礙,自動安裝APP)

    參考: http://www.infoq.com/cn/articles/android-accessibility-installing https://developer.android.com/guide/topics/ui/accessibility/services https://devel

    C#-紅包功能的分散式情況下處理多併發

    需求 需求經理設計了一個分享出去後,可以在微信群中搶優惠的活動。 簡單來說,就是每個參與活動的商品可以生成一個紅包池,分享到群裡後,可以像搶紅包一樣,去搶優惠金額。 問題 介面很快就根據需求設計開發出來了,並完善了相關活動規則。 但是多併發情況下,分享出去的紅

    教你程式碼實現紅包功能

    一.場景帶入搶紅包在現實場景中經常見到,你知道如何通過程式碼來實現嗎?一種通常的思路是,一定金額的紅包,只要有人過來搶,就在剩餘數額內給他分配金額,直到所有錢都分陪完。但是這樣有一個問題,最先搶的人,搶到錢多的概率會更大。比如有10塊錢,有甲乙丙三個人按順序搶,甲開始搶,這時