Android 如何监听App的输入了那些内容

来源:互联网 发布:大数据对驾校的影响 编辑:程序博客网 时间:2024/05/16 14:41

监听手机上任意一个App都输入了哪类内容,比如像QQ聊天等。其实Android给我们提供了一个辅助类AccessibilityService,这个类能干很多事情,模拟点击(比如自动抢红包实例,感谢CSDN_SXL:http://blog.csdn.net/csdn_sxl/article/details/50651959的博客),不过这里我们将监听输入字符。
很简单,创建一个实例GetInputChar继承AccessibilityService,重写onAccessibilityEvent方法

  @Override      public void onAccessibilityEvent(AccessibilityEvent event) {          try {              String inputChar= event.getText().get(0).toString();              Log.i(">>>>>>>", inputChar);            AccessibilityNodeInfo rootNode = getRootInActiveWindow();           } catch (IndexOutOfBoundsException e) {              e.printStackTrace();          }         }

然后在Manifest中声明权限:

 <service              android:name="com.example.testgettext.GetInputChar"              android:enabled="true"              android:exported="true"              android:label="@string/app_name"              android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE" >              <intent-filter>                  <action android:name="android.accessibilityservice.AccessibilityService" />              </intent-filter>              <meta-data                  android:name="android.accessibilityservice"                  android:resource="@xml/accessibility" />          </service> 

在我们的res文件目录下建立一个xml文件夹,创建一个accessibility.xml文件,内容如下:

<?xml version="1.0" encoding="utf-8"?>  <accessibility-service xmlns:android="http://schemas.android.com/apk/res/android"      android:accessibilityEventTypes="typeViewFocused|typeViewTextChanged"      android:accessibilityFeedbackType="feedbackVisual"      android:canRetrieveWindowContent="true"      android:description="@string/aaa"    android:packageNames="xxx.xxx.xxx"    android:notificationTimeout="100" /> 

这里的packageNames上指定,你想要监控APP的包名。就OK了。
安装好app之后,到设置->辅助功能:刚刚安装的App打开即可。

0 0
原创粉丝点击