diff --git a/core/java/android/accessibilityservice/AccessibilityService.java b/core/java/android/accessibilityservice/AccessibilityService.java index 67334f554df76..18e5c3d2d7cc9 100644 --- a/core/java/android/accessibilityservice/AccessibilityService.java +++ b/core/java/android/accessibilityservice/AccessibilityService.java @@ -494,6 +494,13 @@ public abstract class AccessibilityService extends Service { */ public static final int GLOBAL_ACTION_TAKE_SCREENSHOT = 9; + /** + * Action to send the KEYCODE_HEADSETHOOK KeyEvent, which is used to answer/hang up calls and + * play/stop media + * @hide + */ + public static final int GLOBAL_ACTION_KEYCODE_HEADSETHOOK = 10; + private static final String LOG_TAG = "AccessibilityService"; /** diff --git a/services/accessibility/java/com/android/server/accessibility/SystemActionPerformer.java b/services/accessibility/java/com/android/server/accessibility/SystemActionPerformer.java index ef8d524bee25a..ffae770de54e7 100644 --- a/services/accessibility/java/com/android/server/accessibility/SystemActionPerformer.java +++ b/services/accessibility/java/com/android/server/accessibility/SystemActionPerformer.java @@ -301,6 +301,9 @@ public class SystemActionPerformer { return lockScreen(); case AccessibilityService.GLOBAL_ACTION_TAKE_SCREENSHOT: return takeScreenshot(); + case AccessibilityService.GLOBAL_ACTION_KEYCODE_HEADSETHOOK : + sendDownAndUpKeyEvents(KeyEvent.KEYCODE_HEADSETHOOK); + return true; default: return false; }