Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e62f703e authored by rickyniu's avatar rickyniu
Browse files

Broadcast events for AOA handshake

Broadcast intents on below control request

Log both the request and response for 51 control request (Get Protocol)
Log both the request and response for 52 control request (Identifying information)
Log both the request and response for 53 control request (Start accessory mode)

bug: 139264039

Test: Check the broadcast intent could be received
Change-Id: I7c8db41ee05398200e235cf10dde96ba89b306e8
parent a14f7fbd
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -3673,8 +3673,13 @@ package android.hardware.usb {
    method @RequiresPermission(android.Manifest.permission.MANAGE_USB) public void grantPermission(android.hardware.usb.UsbDevice, String);
    method @RequiresPermission(android.Manifest.permission.MANAGE_USB) public void resetUsbGadget();
    method @RequiresPermission(android.Manifest.permission.MANAGE_USB) public void setCurrentFunctions(long);
    field @RequiresPermission(android.Manifest.permission.MANAGE_USB) public static final String ACTION_USB_ACCESSORY_HANDSHAKE = "android.hardware.usb.action.USB_ACCESSORY_HANDSHAKE";
    field @RequiresPermission(android.Manifest.permission.MANAGE_USB) public static final String ACTION_USB_PORT_CHANGED = "android.hardware.usb.action.USB_PORT_CHANGED";
    field public static final String ACTION_USB_STATE = "android.hardware.usb.action.USB_STATE";
    field public static final String EXTRA_ACCESSORY_HANDSHAKE_END = "android.hardware.usb.extra.ACCESSORY_HANDSHAKE_END";
    field public static final String EXTRA_ACCESSORY_START = "android.hardware.usb.extra.ACCESSORY_START";
    field public static final String EXTRA_ACCESSORY_STRING_COUNT = "android.hardware.usb.extra.ACCESSORY_STRING_COUNT";
    field public static final String EXTRA_ACCESSORY_UEVENT_TIME = "android.hardware.usb.extra.ACCESSORY_UEVENT_TIME";
    field public static final long FUNCTION_ACCESSORY = 2L; // 0x2L
    field public static final long FUNCTION_ADB = 1L; // 0x1L
    field public static final long FUNCTION_AUDIO_SOURCE = 64L; // 0x40L
+0 −1
Original line number Diff line number Diff line
@@ -24,7 +24,6 @@ import android.os.Parcelable;
import android.os.RemoteException;

import com.android.internal.util.Preconditions;
import java.util.Objects;

import java.util.Objects;

+62 −0
Original line number Diff line number Diff line
@@ -159,6 +159,22 @@ public class UsbManager {
    public static final String ACTION_USB_ACCESSORY_DETACHED =
            "android.hardware.usb.action.USB_ACCESSORY_DETACHED";

    /**
     * Broadcast Action:  A broadcast for USB accessory handshaking information delivery
     *
     * This intent is sent when a USB accessory connect attempt
     *
     * <p>For more information about communicating with USB accessory handshake, refer to
     * <a href="https://source.android.com/devices/accessories/aoa">AOA</a> developer guide.</p>
     *
     * {@hide}
     */
    @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
    @SystemApi
    @RequiresPermission(Manifest.permission.MANAGE_USB)
    public static final String ACTION_USB_ACCESSORY_HANDSHAKE =
            "android.hardware.usb.action.USB_ACCESSORY_HANDSHAKE";

    /**
     * Boolean extra indicating whether USB is connected or disconnected.
     * Used in extras for the {@link #ACTION_USB_STATE} broadcast.
@@ -302,6 +318,52 @@ public class UsbManager {
     */
    public static final String EXTRA_ACCESSORY = "accessory";

    /**
     * A long extra indicating ms from boot to get get_protocol UEvent
     * This is obtained with SystemClock.elapsedRealtime()
     * Used in extras for {@link #ACTION_USB_ACCESSORY_HANDSHAKE} broadcasts.
     *
     * {@hide}
     */
    @SystemApi
    public static final String EXTRA_ACCESSORY_UEVENT_TIME =
            "android.hardware.usb.extra.ACCESSORY_UEVENT_TIME";

    /**
     * An integer extra indicating numbers of send string during handshake
     * Used in extras for {@link #ACTION_USB_ACCESSORY_HANDSHAKE} broadcasts
     *
     * <p>For more information about control request with identifying string information
     * between communicating with USB accessory handshake, refer to
     * <a href="https://source.android.com/devices/accessories/aoa">AOA</a> developer guide.</p>
     *
     * {@hide}
     */
    @SystemApi
    public static final String EXTRA_ACCESSORY_STRING_COUNT =
            "android.hardware.usb.extra.ACCESSORY_STRING_COUNT";

    /**
     * Boolean extra indicating whether got start accessory or not
     * Used in extras for {@link #ACTION_USB_ACCESSORY_HANDSHAKE} broadcasts.
     *
     * {@hide}
     */
    @SystemApi
    public static final String EXTRA_ACCESSORY_START =
            "android.hardware.usb.extra.ACCESSORY_START";

    /**
     * A long extra indicating ms from boot to sent {@link #ACTION_USB_ACCESSORY_HANDSHAKE}
     * This is obtained with SystemClock.elapsedRealtime()
     * Used in extras for {@link #ACTION_USB_ACCESSORY_HANDSHAKE} broadcasts.
     *
     * {@hide}
     */
    @SystemApi
    public static final String EXTRA_ACCESSORY_HANDSHAKE_END =
            "android.hardware.usb.extra.ACCESSORY_HANDSHAKE_END";

    /**
     * Name of extra added to the {@link android.app.PendingIntent}
     * passed into {@link #requestPermission(UsbDevice, PendingIntent)}
+1 −0
Original line number Diff line number Diff line
@@ -263,6 +263,7 @@
    <protected-broadcast android:name="android.hardware.usb.action.USB_PORT_CHANGED" />
    <protected-broadcast android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED" />
    <protected-broadcast android:name="android.hardware.usb.action.USB_ACCESSORY_DETACHED" />
    <protected-broadcast android:name="android.hardware.usb.action.USB_ACCESSORY_HANDSHAKE" />
    <protected-broadcast android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
    <protected-broadcast android:name="android.hardware.usb.action.USB_DEVICE_DETACHED" />

+5 −0
Original line number Diff line number Diff line
@@ -3613,8 +3613,13 @@ package android.hardware.usb {
    method @RequiresPermission(android.Manifest.permission.MANAGE_USB) public void grantPermission(android.hardware.usb.UsbDevice, String);
    method @RequiresPermission(android.Manifest.permission.MANAGE_USB) public void resetUsbGadget();
    method @RequiresPermission(android.Manifest.permission.MANAGE_USB) public void setCurrentFunctions(long);
    field @RequiresPermission(android.Manifest.permission.MANAGE_USB) public static final String ACTION_USB_ACCESSORY_HANDSHAKE = "android.hardware.usb.action.USB_ACCESSORY_HANDSHAKE";
    field @RequiresPermission(android.Manifest.permission.MANAGE_USB) public static final String ACTION_USB_PORT_CHANGED = "android.hardware.usb.action.USB_PORT_CHANGED";
    field public static final String ACTION_USB_STATE = "android.hardware.usb.action.USB_STATE";
    field public static final String EXTRA_ACCESSORY_HANDSHAKE_END = "android.hardware.usb.extra.ACCESSORY_HANDSHAKE_END";
    field public static final String EXTRA_ACCESSORY_START = "android.hardware.usb.extra.ACCESSORY_START";
    field public static final String EXTRA_ACCESSORY_STRING_COUNT = "android.hardware.usb.extra.ACCESSORY_STRING_COUNT";
    field public static final String EXTRA_ACCESSORY_UEVENT_TIME = "android.hardware.usb.extra.ACCESSORY_UEVENT_TIME";
    field public static final long FUNCTION_ACCESSORY = 2L; // 0x2L
    field public static final long FUNCTION_ADB = 1L; // 0x1L
    field public static final long FUNCTION_AUDIO_SOURCE = 64L; // 0x40L
Loading