最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android實現(xiàn)屏蔽微信拉黑和刪除聯(lián)系人功能示例

 更新時間:2017年02月11日 12:00:18   作者:CKTim  
本篇文章主要介紹了Android實現(xiàn)屏蔽微信拉黑和刪除聯(lián)系人功能示例,具有一定的參考價值,有興趣的可以了解一下。

Android實現(xiàn)屏蔽微信拉黑和刪除聯(lián)系人功能,廢話不多說,具體如下:

實現(xiàn)效果:

讓微信永遠彈不出那個刪除的對話框不就相當(dāng)于屏蔽掉該功能了嗎?哈哈效果如圖:

實現(xiàn)原理:

1.我們知道,其實微信每次刪除聯(lián)系人都會彈出此頁面

2.如果你對AccessibilityService有過了解或者有看過我之前的兩篇博客,你會知道,其實每次彈出這個框,都會觸發(fā)AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED這個事件,所以我們只要在每次觸發(fā)該事件的時候進行判斷當(dāng)前頁面是不是處于刪除聯(lián)系人對話框,如果是,我們模擬點擊取消按鈕。思路什么的其實都很簡單,可以直接看下代碼:

package com.cxk.wechatdeletefail;

import android.accessibilityservice.AccessibilityService;
import android.content.Intent;
import android.text.TextUtils;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityNodeInfo;
import android.widget.Toast;

/**
 * Created by cxk on 2017/2/9.
 * 屏蔽微信"刪除聯(lián)系人"和"拉黑"功能
 */

public class DeleteFailService extends AccessibilityService {

  /**
   * 判斷是不是刪除聯(lián)系人彈框
   */
  private boolean isDeleteDialog;
  /**
   * 判斷是不是拉黑聯(lián)系人彈框
   */
  private boolean isDefriendDialog;

  @Override
  public void onAccessibilityEvent(AccessibilityEvent event) {
    int eventType = event.getEventType();
    switch (eventType) {
      //進入聊天頁面會觸發(fā)該事件
      case AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED:
        //獲取當(dāng)前聊天頁面根布局
        AccessibilityNodeInfo rootNode = getRootInActiveWindow();
        //屏蔽微信"刪除聯(lián)系人"和"拉黑"功能
        DeleteFail(rootNode);
        break;

    }

  }

  /**
   * 遍歷所有控件,判斷是不是刪除聯(lián)系人界面或者拉黑界面,如果是則模擬點擊"取消",讓它消失。
   *
   * @param rootNode
   */
  private void DeleteFail(AccessibilityNodeInfo rootNode) {
    if(rootNode!=null){
      for (int i = 0; i < rootNode.getChildCount(); i++) {
        AccessibilityNodeInfo node = rootNode.getChild(i);
        //判斷是不是刪除聯(lián)系人彈出框
        if("android.widget.TextView".equals(node.getClassName().toString())){
          if(!TextUtils.isEmpty(node.getText())){
            if(node.getText().toString().contains("將同時刪除與該聯(lián)系人的聊天記錄")){
              isDeleteDialog=true;
            }
          }
        }

        //判斷是不是拉黑聯(lián)系人彈出框
        if("android.widget.TextView".equals(node.getClassName().toString())){
          if(!TextUtils.isEmpty(node.getText())){
            if(node.getText().toString().contains("你將不再收到對方的消息,并且你們相互看不到對方朋友圈的更新")){
              isDefriendDialog=true;
            }
          }
        }

        //模擬點擊取消按鈕讓對話框消失
        if("android.widget.Button".equals(node.getClassName().toString())){
          if(isDeleteDialog||isDefriendDialog){
            if(!TextUtils.isEmpty(node.getText())){
              if(node.getText().toString().equals("取消")){
                node.performAction(AccessibilityNodeInfo.ACTION_CLICK);
              }
            }
          }
        }
      }
    }
  }

  /**
   * 必須重寫的方法:系統(tǒng)要中斷此service返回的響應(yīng)時會調(diào)用。在整個生命周期會被調(diào)用多次。
   */
  @Override
  public void onInterrupt() {
    Toast.makeText(this, "我快被終結(jié)了啊-----", Toast.LENGTH_SHORT).show();
  }

  /**
   * 服務(wù)開始連接
   */
  @Override
  protected void onServiceConnected() {
    Toast.makeText(this, "服務(wù)已開啟", Toast.LENGTH_SHORT).show();
    super.onServiceConnected();
  }

  /**
   * 服務(wù)斷開
   *
   * @param intent
   * @return
   */
  @Override
  public boolean onUnbind(Intent intent) {
    Toast.makeText(this, "服務(wù)已被關(guān)閉", Toast.LENGTH_SHORT).show();
    return super.onUnbind(intent);
  }
}


使用方法:

設(shè)置-輔助功能-無障礙-點擊WechatDeletefail開啟即可(或者在設(shè)置中查找輔助功能等)

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Android ListView在Fragment中的使用示例詳解

    Android ListView在Fragment中的使用示例詳解

    這篇文章主要介紹了Android ListView在Fragment中的使用,因為工作一直在用mvvm框架,因此這篇文章是基于mvvm框架寫的,本文通過示例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-09-09
  • Android進程間大數(shù)據(jù)通信LocalSocket詳解

    Android進程間大數(shù)據(jù)通信LocalSocket詳解

    這篇文章主要為大家介紹了Android進程間大數(shù)據(jù)通信LocalSocket詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • 可伸縮的textview詳解(推薦)

    可伸縮的textview詳解(推薦)

    下面小編就為大家?guī)硪黄缮炜s的textview詳解(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • Flutter開發(fā)之Widget自定義總結(jié)

    Flutter開發(fā)之Widget自定義總結(jié)

    這篇文章主要給大家介紹了關(guān)于Flutter開發(fā)中Widget自定義的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用Flutter具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Android開發(fā)之音視頻協(xié)議介紹

    Android開發(fā)之音視頻協(xié)議介紹

    本文對音視頻的協(xié)議起源做詳細介紹,學(xué)習(xí)之后可以加深對音視頻知識的了解。這里的音視頻不僅針對Android平臺,其他平臺也通用。
    2022-04-04
  • Android通過反射實現(xiàn)強制停止應(yīng)用程序的方法

    Android通過反射實現(xiàn)強制停止應(yīng)用程序的方法

    這篇文章主要介紹了Android通過反射實現(xiàn)強制停止應(yīng)用程序的方法,涉及Android的反射機制與進程操作的相關(guān)技巧,需要的朋友可以參考下
    2016-02-02
  • AsyncTask的三個屬性值和四個步驟

    AsyncTask的三個屬性值和四個步驟

    本文主要介紹了AsyncTask的三個屬性值和四個步驟,具有一定的參考價值,下面跟著小編一起來看下吧
    2017-01-01
  • Android如何獲取APP啟動時間

    Android如何獲取APP啟動時間

    大家好,本篇文章主要講的是Android如何獲取APP啟動時間,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • Android Studio的中文亂碼問題解決方法

    Android Studio的中文亂碼問題解決方法

    Android Studio安裝后發(fā)現(xiàn)所有的中文,不管是界面上的還是輸出的log中的中文都變成小框框,具體的解決方法如下,感興趣的朋友可以參考下哈
    2013-06-06
  • Android開發(fā)之SeekBar基本使用及各種美觀樣式示例

    Android開發(fā)之SeekBar基本使用及各種美觀樣式示例

    這篇文章主要介紹了Android開發(fā)之SeekBar基本使用及各種美觀樣式,結(jié)合實例形式分析了Android SeekBar控件的功能及樣式改變相關(guān)操作技巧,需要的朋友可以參考下
    2019-03-03

最新評論

仪陇县| 大渡口区| 岳普湖县| 宜阳县| 博白县| 巴东县| 辽宁省| 望都县| 海淀区| 文昌市| 南阳市| 青海省| 公安县| 类乌齐县| 东阳市| 东源县| 农安县| 巴东县| 修水县| 英山县| 清远市| 东港市| 临泉县| 德化县| 涡阳县| 通化市| 蓬溪县| 平南县| 安阳县| 石屏县| 西平县| 云和县| 虎林市| 寿阳县| 鄯善县| 那坡县| 建阳市| 海淀区| 安福县| 阿城市| 剑阁县|