栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 移动开发 > Android

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

Android 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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;



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;

    }

  }

  
  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);
}
     }
   }
 }
      }
    }
  }

  
  @Override
  public void onInterrupt() {
    Toast.makeText(this, "我快被终结了啊-----", Toast.LENGTH_SHORT).show();
  }

  
  @Override
  protected void onServiceConnected() {
    Toast.makeText(this, "服务已开启", Toast.LENGTH_SHORT).show();
    super.onServiceConnected();
  }

  
  @Override
  public boolean onUnbind(Intent intent) {
    Toast.makeText(this, "服务已被关闭", Toast.LENGTH_SHORT).show();
    return super.onUnbind(intent);
  }
}


使用方法:

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

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/159842.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号