利用无障碍服务自动获取微信号

前言

最近遇到一个需求,要求写一个小插件,能够自动在微信的页面弹出一个窗口,展示用户的相关信息(与我们公司有关的信息,方便运营快速了解用户信息)。

当时我第一反应是不可能,如果能够在别的app中获取对应的信息,那岂不是太不安全了。直到我知道了AccessibilityService这个东西。

基本思路

利用AccessibilityService服务来获取到微信页面的页面信息,并获取到用户的微信号,有了微信号一切都好办了。

由于获取用户好友微信号和获取本人微信号的方法相同,因此此篇文章主要介绍的是如何通过AccessibilityService来获取本人的微信号。

过程

AccessibilityService是什么?

在你的手机更多设置或者高级设置中,我们会发现有个无障碍的功能,很多人不知道这个功能具体是干嘛的,其实这个功能是为了增强用户界面以帮助残障人士,或者可能暂时无法与设备充分交互的人们。

它的具体实现是通过AccessibilityService服务运行在后台中,通过AccessibilityEvent接收指定事件的回调。这样的事件表示用户在界面中的一些状态转换,例如:焦点改变了,一个按钮被点击,等等。这样的服务可以选择请求活动窗口的内容的能力。简单的说AccessibilityService就是一个后台监控服务,当你监控的内容发生改变时,就会调用后台服务的回调方法。


如何创建一个AccessibilityService?

实现一个自己的AccessibilityService,需要继承AccessibilityService类,并至少实现onAccessibilityEventonInterrupt方法:

public class MyAccessibilityService extends AccessibilityService {
   

    final String TAG = "MyAccessibilityService";

    /**
     * 当服务启动的时候会被调用
     */
    @Override
    protected void onServiceConnected() {
   
        super.onServiceConnected();
        Log.d(TAG, "connected");
    }

    /**
     * 监听窗口变化的回调
     */
    @Override
    public void onAccessibilityEvent(AccessibilityEvent event) {
   
        Log.d(TAG, event.getPackageName() + ""
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值