Android 如何監聽App的輸入了那些內容

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章