Skip to content

Instantly share code, notes, and snippets.

@develop025
Forked from qihnus/RecorderService.java
Created May 3, 2019 08:59
Show Gist options
  • Select an option

  • Save develop025/e1ee5d11132505de2c2390d550f35b5f to your computer and use it in GitHub Desktop.

Select an option

Save develop025/e1ee5d11132505de2c2390d550f35b5f to your computer and use it in GitHub Desktop.

Revisions

  1. @qihnus qihnus created this gist Feb 25, 2012.
    62 changes: 62 additions & 0 deletions RecorderService.java
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,62 @@
    import android.accessibilityservice.AccessibilityService;
    import android.accessibilityservice.AccessibilityServiceInfo;
    import android.util.Log;
    import android.view.accessibility.AccessibilityEvent;

    public class RecorderService extends AccessibilityService {

    static final String TAG = "RecorderService";

    private String getEventType(AccessibilityEvent event) {
    switch (event.getEventType()) {
    case AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED:
    return "TYPE_NOTIFICATION_STATE_CHANGED";
    case AccessibilityEvent.TYPE_VIEW_CLICKED:
    return "TYPE_VIEW_CLICKED";
    case AccessibilityEvent.TYPE_VIEW_FOCUSED:
    return "TYPE_VIEW_FOCUSED";
    case AccessibilityEvent.TYPE_VIEW_LONG_CLICKED:
    return "TYPE_VIEW_LONG_CLICKED";
    case AccessibilityEvent.TYPE_VIEW_SELECTED:
    return "TYPE_VIEW_SELECTED";
    case AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED:
    return "TYPE_WINDOW_STATE_CHANGED";
    case AccessibilityEvent.TYPE_VIEW_TEXT_CHANGED:
    return "TYPE_VIEW_TEXT_CHANGED";
    }
    return "default";
    }

    private String getEventText(AccessibilityEvent event) {
    StringBuilder sb = new StringBuilder();
    for (CharSequence s : event.getText()) {
    sb.append(s);
    }
    return sb.toString();
    }

    @Override
    public void onAccessibilityEvent(AccessibilityEvent event) {
    Log.v(TAG, String.format(
    "onAccessibilityEvent: [type] %s [class] %s [package] %s [time] %s [text] %s",
    getEventType(event), event.getClassName(), event.getPackageName(),
    event.getEventTime(), getEventText(event)));
    }

    @Override
    public void onInterrupt() {
    Log.v(TAG, "onInterrupt");
    }

    @Override
    protected void onServiceConnected() {
    super.onServiceConnected();
    Log.v(TAG, "onServiceConnected");
    AccessibilityServiceInfo info = new AccessibilityServiceInfo();
    info.flags = AccessibilityServiceInfo.DEFAULT;
    info.eventTypes = AccessibilityEvent.TYPES_ALL_MASK;
    info.feedbackType = AccessibilityServiceInfo.FEEDBACK_GENERIC;
    setServiceInfo(info);
    }

    }
    14 changes: 14 additions & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,14 @@
    $ adb logcat -s RecorderService
    --------- beginning of /dev/log/system
    --------- beginning of /dev/log/main
    V/RecorderService( 1841): onServiceConnected
    ...
    V/RecorderService( 1841): onAccessibilityEvent: [type] TYPE_VIEW_CLICKED [class] android.widget.Button [package] com.example [time] 7710428 [text] Activity1
    V/RecorderService( 1841): onAccessibilityEvent: [type] TYPE_VIEW_FOCUSED [class] android.widget.EditText [package] com.example [time] 7710521 [text]
    V/RecorderService( 1841): onAccessibilityEvent: [type] TYPE_WINDOW_STATE_CHANGED [class] com.example.Activity1 [package] com.example [time] 7710536 [text] TestRecord
    V/RecorderService( 1841): onAccessibilityEvent: [type] TYPE_VIEW_FOCUSED [class] android.widget.EditText [package] com.example [time] 7710539 [text]
    V/RecorderService( 1841): onAccessibilityEvent: [type] TYPE_VIEW_CLICKED [class] android.widget.EditText [package] com.example [time] 7725471 [text]
    V/RecorderService( 1841): onAccessibilityEvent: [type] TYPE_VIEW_TEXT_CHANGED [class] android.widget.EditText [package] com.example [time] 7728589 [text] f
    V/RecorderService( 1841): onAccessibilityEvent: [type] TYPE_VIEW_TEXT_CHANGED [class] android.widget.EditText [package] com.example [time] 7728804 [text] fg
    V/RecorderService( 1841): onAccessibilityEvent: [type] TYPE_VIEW_TEXT_CHANGED [class] android.widget.EditText [package] com.example [time] 7728994 [text] fgj
    ...