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

首頁 > 系統 > Android > 正文

Android實現屏蔽微信拉黑和刪除聯系人功能示例

2019-12-12 03:45:38
字體:
來源:轉載
供稿:網友

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

實現效果:

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

實現原理:

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

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

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. * 屏蔽微信"刪除聯系人"和"拉黑"功能 */public class DeleteFailService extends AccessibilityService {  /**   * 判斷是不是刪除聯系人彈框   */  private boolean isDeleteDialog;  /**   * 判斷是不是拉黑聯系人彈框   */  private boolean isDefriendDialog;  @Override  public void onAccessibilityEvent(AccessibilityEvent event) {    int eventType = event.getEventType();    switch (eventType) {      //進入聊天頁面會觸發該事件      case AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED:        //獲取當前聊天頁面根布局        AccessibilityNodeInfo rootNode = getRootInActiveWindow();        //屏蔽微信"刪除聯系人"和"拉黑"功能        DeleteFail(rootNode);        break;    }  }  /**   * 遍歷所有控件,判斷是不是刪除聯系人界面或者拉黑界面,如果是則模擬點擊"取消",讓它消失。   *   * @param rootNode   */  private void DeleteFail(AccessibilityNodeInfo rootNode) {    if(rootNode!=null){      for (int i = 0; i < rootNode.getChildCount(); i++) {        AccessibilityNodeInfo node = rootNode.getChild(i);        //判斷是不是刪除聯系人彈出框        if("android.widget.TextView".equals(node.getClassName().toString())){          if(!TextUtils.isEmpty(node.getText())){            if(node.getText().toString().contains("將同時刪除與該聯系人的聊天記錄")){              isDeleteDialog=true;            }          }        }        //判斷是不是拉黑聯系人彈出框        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);              }            }          }        }      }    }  }  /**   * 必須重寫的方法:系統要中斷此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();  }  /**   * 服務斷開   *   * @param intent   * @return   */  @Override  public boolean onUnbind(Intent intent) {    Toast.makeText(this, "服務已被關閉", Toast.LENGTH_SHORT).show();    return super.onUnbind(intent);  }}

使用方法:

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 介休市| 水富县| 巴马| 阿巴嘎旗| 朝阳市| 射洪县| 玉林市| 吴桥县| 勐海县| 漯河市| 南昌县| 屏山县| 江达县| 政和县| 筠连县| 玉林市| 夏津县| 股票| 盐亭县| 西峡县| 彰化县| 鹤峰县| 西平县| 四平市| 六枝特区| 安泽县| 政和县| 清流县| 防城港市| 绥化市| 莒南县| 当雄县| 南宫市| 仙游县| 秦皇岛市| 泾源县| 交口县| 乌拉特前旗| 中宁县| 三原县| 静海县|