热门标签 | HotTags
当前位置:  开发笔记 > Android > 正文

Android实现屏蔽微信拉黑和删除联系人功能示例

Android实现屏蔽微信拉黑和删除联系人功能,废话不多说,具体如下: 实现效果: 让微信永远弹不出那个删除的对话框不就相当于屏蔽掉

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 

使用方法:

设置-辅助功能-无障碍-点击WechatDeletefail开启即可(或者在设置中查找辅助功能等)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


推荐阅读
author-avatar
时光机少女
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有