国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android中微信搶紅包助手的實現詳解

2019-12-12 03:50:28
字體:
來源:轉載
供稿:網友

實現原理

通過利用AccessibilityService輔助服務,監測屏幕內容,如監聽狀態欄的信息,屏幕跳轉等,以此來實現自動拆紅包的功能。關于AccessibilityService輔助服務,可以自行百度了解更多。 

代碼基礎:

1.首先聲明一個RedPacketService繼承自AccessibilityService,該服務類有兩個方法必須重寫,如下:

/** * Created by cxk on 2017/2/3. * * 搶紅包服務類 */public class RedPacketService extends AccessibilityService {  /**   * 必須重寫的方法:此方法用了接受系統發來的event。在你注冊的event發生是被調用。在整個生命周期會被調用多次。   */  @Override  public void onAccessibilityEvent(AccessibilityEvent event) {  }  /**   * 必須重寫的方法:系統要中斷此service返回的響應時會調用。在整個生命周期會被調用多次。   */  @Override  public void onInterrupt() {    Toast.makeText(this, "我快被終結了啊-----", Toast.LENGTH_SHORT).show();  }  /**   * 服務已連接   */  @Override  protected void onServiceConnected() {    Toast.makeText(this, "搶紅包服務開啟", Toast.LENGTH_SHORT).show();    super.onServiceConnected();  }  /**   * 服務已斷開   */  @Override  public boolean onUnbind(Intent intent) {    Toast.makeText(this, "搶紅包服務已被關閉", Toast.LENGTH_SHORT).show();    return super.onUnbind(intent);  }}

2.對我們的RedPacketService進行一些配置,這里配置方法可以選擇代碼動態配置(onServiceConnected里配置),也可以直接在res/xml下新建.xml文件,沒有xml文件夾就新建。這里我們將文件命名為redpacket_service_config.xml,代碼如下:

<?xml version="1.0" encoding="utf-8"?><accessibility-service xmlns:android="http://schemas.android.com/apk/res/android"  android:accessibilityEventTypes="typeAllMask"  android:accessibilityFeedbackType="feedbackGeneric"  android:accessibilityFlags="flagDefault"  android:canRetrieveWindowContent="true"  android:description="@string/desc"  android:notificationTimeout="100"  android:packageNames="com.tencent.mm" />

accessibilityEventTypes:  

響應哪一種類型的事件,typeAllMask就是響應所有類型的事件了,另外還有單擊、長按、滑動等。

accessibilityFeedbackType: 

用什么方式反饋給用戶,有語音播出和振動。可以配置一些TTS引擎,讓它實現發音。

packageNames:

指定響應哪個應用的事件。這里我們是寫搶紅包助手,就寫微信的包名:com.tencent.mm,這樣就可以監聽微信產生的事件了。

notificationTimeout:

響應時間

description:

輔助服務的描述信息。

 3.service是四大組件之一,需要在AndroidManifest進行配置,注意這里稍微有些不同:

 <!--搶紅包服務-->    <service      android:name=".RedPacketService"      android:enabled="true"      android:exported="true"      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/redpacket_service_config"></meta-data>    </service>

android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE"  權限申請

android:resource="@xml/redpacket_service_config"  引用剛才的配置文件

核心代碼:

我們的紅包助手,核心思路分為三步走:

監聽通知欄微信消息,如果彈出[微信紅包]字樣,模擬手指點擊狀態欄跳轉到微信聊天界面→在微信聊天界面查找紅包,如果找到則模擬手指點擊打開,彈出打開紅包界面→模擬手指點擊紅包“

主站蜘蛛池模板: 尚志市| 镇宁| 乌兰浩特市| 梧州市| 天峨县| 金坛市| 庆安县| 浦县| 双鸭山市| 太湖县| 河池市| 土默特左旗| 兴业县| 荆州市| 望奎县| 达孜县| 会同县| 尚义县| 米林县| 伊春市| 浦县| 恩平市| 会泽县| 博湖县| 普陀区| 抚顺县| 门源| 海淀区| 凉城县| 盘山县| 高碑店市| 永平县| 岱山县| 平山县| 中卫市| 滕州市| 襄樊市| 沭阳县| 鄂伦春自治旗| 滕州市| 连南|