亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

AccessibilityService實現(xiàn)微信發(fā)紅包功能

 更新時間:2019年12月14日 14:57:49   作者:dzy_mails  
這篇文章主要為大家詳細介紹了AccessibilityService實現(xiàn)微信發(fā)紅包功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

在AccessibilityService中我們可以做模擬操作,下面記述下通過AccessibilityService實現(xiàn)微信發(fā)紅包的功能

1.配置AccessibilityService,需要通過集成AccessibilityService來執(zhí)行操作。

public class TestAccessibilityService extends AccessibilityService {
  @Override
  public void onAccessibilityEvent(AccessibilityEvent event) {
    ...
  }
 
  @Override
  public void onInterrupt() {
    VirtualControlManager.getInstance().onCancel();
  }
}

使用時,需要在AndroidManifest.xml進行配置

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

在res文件夾下創(chuàng)建xml文件夾,存放accessibility_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|flagRetrieveInteractiveWindows|flagIncludeNotImportantViews"
  android:canRetrieveWindowContent="true"
  android:description="@string/accessibility_service_description"
  android:notificationTimeout="100"/>
  <!--accessibilityEventTypes:表示該服務對界面中的哪些變化感興趣,即哪些事件通知,比如窗口打開,滑動,
  焦點變化,長按等.具體的值可以在AccessibilityEvent類中查到,如typeAllMask表示接受所有的事件通知.-->
  <!--accessibilityFeedbackType:表示反饋方式,比如是語音播放,還是震動-->
  <!--canRetrieveWindowContent:表示該服務能否訪問活動窗口中的內容.也就是如果你希望在服務中獲取窗體內容的化,則需要設置其值為true.-->
  <!--notificationTimeout:接受事件的時間間隔,通常將其設置為100即可.-->
  <!--packageNames:表示對該服務是用來監(jiān)聽哪個包的產生的事件-->

這句話非常重要,后面會用到,切記

android:accessibilityFlags="flagDefault|flagRetrieveInteractiveWindows|flagIncludeNotImportantViews"

2.啟動微信

Intent intent = new Intent(Intent.ACTION_MAIN);
//  intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent
//  .FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
 
        //加這個flag為了讓微信能夠進入的時候在會話列表
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
 
        intent.addCategory(Intent.CATEGORY_LAUNCHER);
        ComponentName cn = new ComponentName(“com.tencent.mm”, “com.tencent.mm.ui.LauncherUI”);
        intent.setComponent(cn);
        context.startActivity(intent);

網上很多啟動微信的代碼在setFlags中的參數(shù)都是我注釋的那段,用那段確實可以啟動微信,但是不能保證微信啟動后就是最原始的消息列表,而是微信任何界面(用戶上次操作微信停留的界面),這樣在想做模擬點擊的操作,要加好多的判斷界面的代碼和操作,那么能否我啟動微信時一定在消息列表呢,答案是可以的,那就是用下面這個flag,在啟動微信的時候肯定會到消息列表,省去了我們的操作。

Intent.FLAG_ACTIVITY_CLEAR_TOP

3.執(zhí)行操作

通過AccessibilityService的onAccessibilityEvent(...)方法,我們可以獲取到界面view的信息,用getRootInActiveWindow(),一步步通過view的id,來模擬操作,到發(fā)紅包界面。

這里需要注意,微信在跳轉到紅包界面的時候是有一個dialog加載動畫的,不少人在跳轉到發(fā)紅包界面時,通過getRootInActiveWindow()獲取到的對象不是null就是節(jié)點信息不對,這是因為一個dialog快速加載過去了,部分機器能看一閃的效果,如果手機性能比較好,這個dialog可能就看不到,但是代碼執(zhí)行的時候就拿不到節(jié)點信息。

嘗試過加延時,但是延時過后,onAccessibilityEvent方法不執(zhí)行,還是等于沒有。

這時候就需要用到開篇講的了這段代碼了:

android:accessibilityFlags="flagDefault|flagRetrieveInteractiveWindows|flagIncludeNotImportantViews"

加上這段代碼后,我們就能通過onAccessibilityEvent來獲取到發(fā)紅包界面的view了,發(fā)一段在發(fā)紅包界面填寫金額的代碼:

private void sendLuckMoney() {
    AccessibilityNodeInfo rootInfo = accessibilityService.getRootInActiveWindow();
    if (rootInfo != null) {
      List<AccessibilityNodeInfo> nodeInfoList = rootInfo.findAccessibilityNodeInfosByViewId("com.tencent.mm:id/clu");
      for (AccessibilityNodeInfo nodeInfo : nodeInfoList) {
        Bundle arguments = new Bundle();
        arguments.putCharSequence(AccessibilityNodeInfo.ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE, "10");
        nodeInfo.performAction(AccessibilityNodeInfo.ACTION_SET_TEXT, arguments);
      }
 
    }
  }

 以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Android EditText追加空格、限制字符等方法示例

    Android EditText追加空格、限制字符等方法示例

    這篇文章主要給大家介紹了關于Android EditText追加空格、限制字符等的相關資料,文中通過示例代碼介紹的非常詳細,對各位Android開發(fā)者們具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-06-06
  • android webview 中l(wèi)ocalStorage無效的解決方法

    android webview 中l(wèi)ocalStorage無效的解決方法

    這篇文章主要介紹了android webview 中l(wèi)ocalStorage無效的解決方法,本文直接給出解決方法實現(xiàn)代碼,需要的朋友可以參考下
    2015-06-06
  • Android使用post方式上傳圖片到服務器的方法

    Android使用post方式上傳圖片到服務器的方法

    這篇文章主要介紹了Android使用post方式上傳圖片到服務器的方法,結合實例形式分析了Android文件傳輸?shù)南嚓P技巧,需要的朋友可以參考下
    2016-03-03
  • Android ExpandableListView長按事件的完美解決辦法

    Android ExpandableListView長按事件的完美解決辦法

    本篇文章是對Android中ExpandableListView長按事件的解決方法進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • Android權限詢問的實例詳解

    Android權限詢問的實例詳解

    這篇文章主要介紹了Android權限詢問,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-09-09
  • Android?Jetpack庫重要組件WorkManager的使用

    Android?Jetpack庫重要組件WorkManager的使用

    WorkManager是Android?Jetpack的一個強大的組件,用于處理后臺耗時任務。后臺任務可以是一次性的,也可以是重復的,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08
  • 一文徹底搞懂Kotlin中的協(xié)程

    一文徹底搞懂Kotlin中的協(xié)程

    這篇文章主要給大家介紹了Kotlin中協(xié)程的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • Android 退出多Activity的application的方式方法

    Android 退出多Activity的application的方式方法

    在開發(fā)過程中,我們常常需要一個退出功能,來退出該應用的所有Activity,本篇文章主要介紹了Android 退出多Activity的application的方式,有興趣的可以了解一下。
    2017-02-02
  • Android實現(xiàn)手勢滑動多點觸摸放大縮小圖片效果

    Android實現(xiàn)手勢滑動多點觸摸放大縮小圖片效果

    這篇文章主要介紹了Android實現(xiàn)手勢滑動多點觸摸放大縮小圖片效果的相關資料,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-02-02
  • Android實現(xiàn)拍照及圖片顯示效果

    Android實現(xiàn)拍照及圖片顯示效果

    這篇文章主要為大家詳細介紹了Android實現(xiàn)拍照及圖片顯示效果 ,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03

最新評論