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

首頁 > 系統 > Android > 正文

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

2019-10-23 19:48:23
字體:
來源:轉載
供稿:網友

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

實現效果:

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

Android屏蔽微信拉黑,android刪除聯系人

實現原理:

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

Android屏蔽微信拉黑,android刪除聯系人

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開啟即可(或者在設置中查找輔助功能等)

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


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 白河县| 堆龙德庆县| 大冶市| 仙居县| 东明县| 高台县| 阳山县| 攀枝花市| 嘉祥县| 保康县| 津市市| 长顺县| 独山县| 济阳县| 临安市| 天祝| 雷波县| 临桂县| 密山市| 隆林| 锦屏县| 望城县| 醴陵市| 南木林县| 玉林市| 凯里市| 习水县| 和静县| 利辛县| 郸城县| 吉隆县| 蒲城县| 习水县| 从化市| 无为县| 张家口市| 南江县| 建阳市| 资中县| 寿阳县| 宁远县|