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

Commit fdff5d0f authored by android-build-team Robot's avatar android-build-team Robot
Browse files

Snap for 4496165 from 0b62766d27da6867cc6d00347cd81427a6ec9e86 to pi-release

Change-Id: I873873f416470a831e1a317fc79396d3049bcac8
parents fe351808 8cf2d73c
Loading
Loading
Loading
Loading
+0 −138
Original line number Diff line number Diff line
@@ -677,33 +677,6 @@ public final class BluetoothHeadset implements BluetoothProfile {
        return false;
    }

    /**
     * Get battery usage hint for Bluetooth Headset service.
     * This is a monotonically increasing integer. Wraps to 0 at
     * Integer.MAX_INT, and at boot.
     * Current implementation returns the number of AT commands handled since
     * boot. This is a good indicator for spammy headset/handsfree units that
     * can keep the device awake by polling for cellular status updates. As a
     * rule of thumb, each AT command prevents the CPU from sleeping for 500 ms
     *
     * @param device the bluetooth headset.
     * @return monotonically increasing battery usage hint, or a negative error code on error
     * @hide
     */
    public int getBatteryUsageHint(BluetoothDevice device) {
        if (VDBG) log("getBatteryUsageHint()");
        final IBluetoothHeadset service = mService;
        if (service != null && isEnabled() && isValidDevice(device)) {
            try {
                return service.getBatteryUsageHint(device);
            } catch (RemoteException e) {
                Log.e(TAG, Log.getStackTraceString(new Throwable()));
            }
        }
        if (service == null) Log.w(TAG, "Proxy not attached to service");
        return -1;
    }

    /**
     * Indicates if current platform supports voice dialing over bluetooth SCO.
     *
@@ -715,49 +688,6 @@ public final class BluetoothHeadset implements BluetoothProfile {
                com.android.internal.R.bool.config_bluetooth_sco_off_call);
    }

    /**
     * Accept the incoming connection.
     * Note: This is an internal function and shouldn't be exposed
     *
     * @hide
     */
    public boolean acceptIncomingConnect(BluetoothDevice device) {
        if (DBG) log("acceptIncomingConnect");
        final IBluetoothHeadset service = mService;
        if (service != null && isEnabled()) {
            try {
                return service.acceptIncomingConnect(device);
            } catch (RemoteException e) {
                Log.e(TAG, e.toString());
            }
        } else {
            Log.w(TAG, "Proxy not attached to service");
            if (DBG) Log.d(TAG, Log.getStackTraceString(new Throwable()));
        }
        return false;
    }

    /**
     * Reject the incoming connection.
     *
     * @hide
     */
    public boolean rejectIncomingConnect(BluetoothDevice device) {
        if (DBG) log("rejectIncomingConnect");
        final IBluetoothHeadset service = mService;
        if (service != null) {
            try {
                return service.rejectIncomingConnect(device);
            } catch (RemoteException e) {
                Log.e(TAG, e.toString());
            }
        } else {
            Log.w(TAG, "Proxy not attached to service");
            if (DBG) Log.d(TAG, Log.getStackTraceString(new Throwable()));
        }
        return false;
    }

    /**
     * Get the current audio state of the Headset.
     * Note: This is an internal function and shouldn't be exposed
@@ -1052,50 +982,6 @@ public final class BluetoothHeadset implements BluetoothProfile {
        return false;
    }

    /**
     * enable WBS codec setting.
     *
     * @return true if successful false if there was some error such as there is no connected
     * headset
     * @hide
     */
    public boolean enableWBS() {
        final IBluetoothHeadset service = mService;
        if (service != null && isEnabled()) {
            try {
                return service.enableWBS();
            } catch (RemoteException e) {
                Log.e(TAG, e.toString());
            }
        } else {
            Log.w(TAG, "Proxy not attached to service");
            if (DBG) Log.d(TAG, Log.getStackTraceString(new Throwable()));
        }
        return false;
    }

    /**
     * disable WBS codec settting. It set NBS codec.
     *
     * @return true if successful false if there was some error such as there is no connected
     * headset
     * @hide
     */
    public boolean disableWBS() {
        final IBluetoothHeadset service = mService;
        if (service != null && isEnabled()) {
            try {
                return service.disableWBS();
            } catch (RemoteException e) {
                Log.e(TAG, e.toString());
            }
        } else {
            Log.w(TAG, "Proxy not attached to service");
            if (DBG) Log.d(TAG, Log.getStackTraceString(new Throwable()));
        }
        return false;
    }

    /**
     * check if in-band ringing is supported for this platform.
     *
@@ -1107,30 +993,6 @@ public final class BluetoothHeadset implements BluetoothProfile {
                com.android.internal.R.bool.config_bluetooth_hfp_inband_ringing_support);
    }

    /**
     * Send Headset the BIND response from AG to report change in the status of the
     * HF indicators to the headset
     *
     * @param indId Assigned Number of the indicator (defined by SIG)
     * @param indStatus possible values- false-Indicator is disabled, no value changes shall be
     * sent for this indicator true-Indicator is enabled, value changes may be sent for this
     * indicator
     * @hide
     */
    public void bindResponse(int indId, boolean indStatus) {
        final IBluetoothHeadset service = mService;
        if (service != null && isEnabled()) {
            try {
                service.bindResponse(indId, indStatus);
            } catch (RemoteException e) {
                Log.e(TAG, e.toString());
            }
        } else {
            Log.w(TAG, "Proxy not attached to service");
            if (DBG) Log.d(TAG, Log.getStackTraceString(new Throwable()));
        }
    }

    private final IBluetoothProfileServiceConnection mConnection =
            new IBluetoothProfileServiceConnection.Stub() {
        @Override
+82 −95
Original line number Diff line number Diff line
@@ -31,36 +31,33 @@ import java.util.Arrays;
import java.util.List;

/**
 * Provides the public APIs to control the Bluetooth HID Device
 * profile.
 * Provides the public APIs to control the Bluetooth HID Device profile.
 *
 * BluetoothHidDevice is a proxy object for controlling the Bluetooth HID
 * Device Service via IPC. Use {@link BluetoothAdapter#getProfileProxy} to get
 * the BluetoothHidDevice proxy object.
 * <p>BluetoothHidDevice is a proxy object for controlling the Bluetooth HID Device Service via IPC.
 * Use {@link BluetoothAdapter#getProfileProxy} to get the BluetoothHidDevice proxy object.
 *
 * {@hide}
 * <p>{@hide}
 */
public final class BluetoothHidDevice implements BluetoothProfile {

    private static final String TAG = BluetoothHidDevice.class.getSimpleName();

    /**
     * Intent used to broadcast the change in connection state of the Input
     * Host profile.
     * Intent used to broadcast the change in connection state of the Input Host profile.
     *
     * <p>This intent will have 3 extras:
     *
     * <ul>
     * <li> {@link #EXTRA_STATE} - The current state of the profile. </li>
     * <li> {@link #EXTRA_PREVIOUS_STATE}- The previous state of the profile.</li>
     * <li> {@link BluetoothDevice#EXTRA_DEVICE} - The remote device. </li>
     *   <li>{@link #EXTRA_STATE} - The current state of the profile.
     *   <li>{@link #EXTRA_PREVIOUS_STATE}- The previous state of the profile.
     *   <li>{@link BluetoothDevice#EXTRA_DEVICE} - The remote device.
     * </ul>
     *
     * <p>{@link #EXTRA_STATE} or {@link #EXTRA_PREVIOUS_STATE} can be any of
     * {@link #STATE_DISCONNECTED}, {@link #STATE_CONNECTING},
     * {@link #STATE_CONNECTED}, {@link #STATE_DISCONNECTING}.
     * <p>{@link #EXTRA_STATE} or {@link #EXTRA_PREVIOUS_STATE} can be any of {@link
     * #STATE_DISCONNECTED}, {@link #STATE_CONNECTING}, {@link #STATE_CONNECTED}, {@link
     * #STATE_DISCONNECTING}.
     *
     * <p>Requires {@link android.Manifest.permission#BLUETOOTH} permission to
     * receive.
     * <p>Requires {@link android.Manifest.permission#BLUETOOTH} permission to receive.
     */
    @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
    public static final String ACTION_CONNECTION_STATE_CHANGED =
@@ -69,8 +66,7 @@ public final class BluetoothHidDevice implements BluetoothProfile {
    /**
     * Constants representing device subclass.
     *
     * @see #registerApp
     * (BluetoothHidDeviceAppQosSettings, BluetoothHidDeviceAppQosSettings,
     * @see #registerApp (BluetoothHidDeviceAppQosSettings, BluetoothHidDeviceAppQosSettings,
     *     BluetoothHidDeviceAppQosSettings, BluetoothHidDeviceCallback)
     */
    public static final byte SUBCLASS1_NONE = (byte) 0x00;
@@ -110,8 +106,8 @@ public final class BluetoothHidDevice implements BluetoothProfile {
    public static final byte ERROR_RSP_UNKNOWN = (byte) 14;

    /**
     * Constants representing protocol mode used set by host. Default is always
     * {@link #PROTOCOL_REPORT_MODE} unless notified otherwise.
     * Constants representing protocol mode used set by host. Default is always {@link
     * #PROTOCOL_REPORT_MODE} unless notified otherwise.
     *
     * @see BluetoothHidDeviceCallback#onSetProtocol(BluetoothDevice, byte)
     */
@@ -126,8 +122,8 @@ public final class BluetoothHidDevice implements BluetoothProfile {

    private BluetoothAdapter mAdapter;

    private static class BluetoothHidDeviceCallbackWrapper extends
            IBluetoothHidDeviceCallback.Stub {
    private static class BluetoothHidDeviceCallbackWrapper
            extends IBluetoothHidDeviceCallback.Stub {

        private BluetoothHidDeviceCallback mCallback;

@@ -184,12 +180,10 @@ public final class BluetoothHidDevice implements BluetoothProfile {
                                    doBind();
                                }
                            } catch (IllegalStateException e) {
                                Log.e(TAG,
                                        "onBluetoothStateChange: could not bind to HID Dev "
                                Log.e(TAG, "onBluetoothStateChange: could not bind to HID Dev "
                                        + "service: ", e);
                            } catch (SecurityException e) {
                                Log.e(TAG,
                                        "onBluetoothStateChange: could not bind to HID Dev "
                                Log.e(TAG, "onBluetoothStateChange: could not bind to HID Dev "
                                        + "service: ", e);
                            }
                        } else {
@@ -200,15 +194,17 @@ public final class BluetoothHidDevice implements BluetoothProfile {
                }
            };

    private final ServiceConnection mConnection = new ServiceConnection() {
    private final ServiceConnection mConnection =
            new ServiceConnection() {
                public void onServiceConnected(ComponentName className, IBinder service) {
                    Log.d(TAG, "onServiceConnected()");
                    mService = IBluetoothHidDevice.Stub.asInterface(service);
                    if (mServiceListener != null) {
                mServiceListener.onServiceConnected(BluetoothProfile.HID_DEVICE,
                        BluetoothHidDevice.this);
                        mServiceListener.onServiceConnected(
                                BluetoothProfile.HID_DEVICE, BluetoothHidDevice.this);
                    }
                }

                public void onServiceDisconnected(ComponentName className) {
                    Log.d(TAG, "onServiceDisconnected()");
                    mService = null;
@@ -280,9 +276,7 @@ public final class BluetoothHidDevice implements BluetoothProfile {
        mServiceListener = null;
    }

    /**
     * {@inheritDoc}
     */
    /** {@inheritDoc} */
    @Override
    public List<BluetoothDevice> getConnectedDevices() {
        Log.v(TAG, "getConnectedDevices()");
@@ -301,9 +295,7 @@ public final class BluetoothHidDevice implements BluetoothProfile {
        return new ArrayList<BluetoothDevice>();
    }

    /**
     * {@inheritDoc}
     */
    /** {@inheritDoc} */
    @Override
    public List<BluetoothDevice> getDevicesMatchingConnectionStates(int[] states) {
        Log.v(TAG, "getDevicesMatchingConnectionStates(): states=" + Arrays.toString(states));
@@ -322,9 +314,7 @@ public final class BluetoothHidDevice implements BluetoothProfile {
        return new ArrayList<BluetoothDevice>();
    }

    /**
     * {@inheritDoc}
     */
    /** {@inheritDoc} */
    @Override
    public int getConnectionState(BluetoothDevice device) {
        Log.v(TAG, "getConnectionState(): device=" + device);
@@ -344,26 +334,24 @@ public final class BluetoothHidDevice implements BluetoothProfile {
    }

    /**
     * Registers application to be used for HID device. Connections to HID
     * Device are only possible when application is registered. Only one
     * application can be registered at time. When no longer used, application
     * should be unregistered using
     * {@link #unregisterApp()}.
     * The registration status should be tracked by the application by handling callback from
     * BluetoothHidDeviceCallback#onAppStatusChanged. The app registration status is not related
     * to the return value of this method.
     * Registers application to be used for HID device. Connections to HID Device are only possible
     * when application is registered. Only one application can be registered at one time. When an
     * application is registered, the HID Host service will be disabled until it is unregistered.
     * When no longer used, application should be unregistered using {@link #unregisterApp()}. The
     * registration status should be tracked by the application by handling callback from
     * BluetoothHidDeviceCallback#onAppStatusChanged. The app registration status is not related to
     * the return value of this method.
     *
     * @param sdp {@link BluetoothHidDeviceAppSdpSettings} object of HID Device SDP record.
     * The HID Device SDP record is required.
     * @param inQos {@link BluetoothHidDeviceAppQosSettings} object of Incoming QoS Settings.
     * The Incoming QoS Settings is not required. Use null or default
     * @param sdp {@link BluetoothHidDeviceAppSdpSettings} object of HID Device SDP record. The HID
     *     Device SDP record is required.
     * @param inQos {@link BluetoothHidDeviceAppQosSettings} object of Incoming QoS Settings. The
     *     Incoming QoS Settings is not required. Use null or default
     *     BluetoothHidDeviceAppQosSettings.Builder for default values.
     * @param outQos {@link BluetoothHidDeviceAppQosSettings} object of Outgoing QoS Settings.
     * The Outgoing QoS Settings is not required. Use null or default
     * @param outQos {@link BluetoothHidDeviceAppQosSettings} object of Outgoing QoS Settings. The
     *     Outgoing QoS Settings is not required. Use null or default
     *     BluetoothHidDeviceAppQosSettings.Builder for default values.
     * @param callback {@link BluetoothHidDeviceCallback} object to which callback messages will be
     * sent.
     * The BluetoothHidDeviceCallback object is required.
     *     sent. The BluetoothHidDeviceCallback object is required.
     * @return true if the command is successfully sent; otherwise false.
     */
    public boolean registerApp(BluetoothHidDeviceAppSdpSettings sdp,
@@ -395,14 +383,13 @@ public final class BluetoothHidDevice implements BluetoothProfile {
    }

    /**
     * Unregisters application. Active connection will be disconnected and no
     * new connections will be allowed until registered again using
     * {@link #registerApp
     * Unregisters application. Active connection will be disconnected and no new connections will
     * be allowed until registered again using {@link #registerApp
     * (BluetoothHidDeviceAppQosSettings, BluetoothHidDeviceAppQosSettings,
     * BluetoothHidDeviceAppQosSettings, BluetoothHidDeviceCallback)}
     * The registration status should be tracked by the application by handling callback from
     * BluetoothHidDeviceCallback#onAppStatusChanged. The app registration status is not related
     * to the return value of this method.
     * BluetoothHidDeviceAppQosSettings, BluetoothHidDeviceCallback)} The registration status should
     * be tracked by the application by handling callback from
     * BluetoothHidDeviceCallback#onAppStatusChanged. The app registration status is not related to
     * the return value of this method.
     *
     * @return true if the command is successfully sent; otherwise false.
     */
@@ -451,8 +438,8 @@ public final class BluetoothHidDevice implements BluetoothProfile {
    }

    /**
     * Sends report to remote host as reply for GET_REPORT request from
     * {@link BluetoothHidDeviceCallback#onGetReport(BluetoothDevice, byte, byte, int)}.
     * Sends report to remote host as reply for GET_REPORT request from {@link
     * BluetoothHidDeviceCallback#onGetReport(BluetoothDevice, byte, byte, int)}.
     *
     * @param type Report Type, as in request.
     * @param id Report Id, as in request.
@@ -479,8 +466,8 @@ public final class BluetoothHidDevice implements BluetoothProfile {
    }

    /**
     * Sends error handshake message as reply for invalid SET_REPORT request
     * from {@link BluetoothHidDeviceCallback#onSetReport(BluetoothDevice, byte, byte, byte[])}.
     * Sends error handshake message as reply for invalid SET_REPORT request from {@link
     * BluetoothHidDeviceCallback#onSetReport(BluetoothDevice, byte, byte, byte[])}.
     *
     * @param error Error to be sent for SET_REPORT via HANDSHAKE.
     * @return true if the command is successfully sent; otherwise false.
@@ -508,6 +495,7 @@ public final class BluetoothHidDevice implements BluetoothProfile {
     * Sends Virtual Cable Unplug to currently connected host.
     *
     * @return
     * {@hide}
     */
    public boolean unplug(BluetoothDevice device) {
        Log.v(TAG, "unplug(): device=" + device);
@@ -529,11 +517,11 @@ public final class BluetoothHidDevice implements BluetoothProfile {
    }

    /**
     * Initiates connection to host which is currently paired with this device.
     * If the application is not registered, #connect(BluetoothDevice) will fail.
     * The connection state should be tracked by the application by handling callback from
     * BluetoothHidDeviceCallback#onConnectionStateChanged. The connection state is not related
     * to the return value of this method.
     * Initiates connection to host which is currently paired with this device. If the application
     * is not registered, #connect(BluetoothDevice) will fail. The connection state should be
     * tracked by the application by handling callback from
     * BluetoothHidDeviceCallback#onConnectionStateChanged. The connection state is not related to
     * the return value of this method.
     *
     * @return true if the command is successfully sent; otherwise false.
     */
@@ -557,10 +545,9 @@ public final class BluetoothHidDevice implements BluetoothProfile {
    }

    /**
     * Disconnects from currently connected host.
     * The connection state should be tracked by the application by handling callback from
     * BluetoothHidDeviceCallback#onConnectionStateChanged. The connection state is not related
     * to the return value of this method.
     * Disconnects from currently connected host. The connection state should be tracked by the
     * application by handling callback from BluetoothHidDeviceCallback#onConnectionStateChanged.
     * The connection state is not related to the return value of this method.
     *
     * @return true if the command is successfully sent; otherwise false.
     */
+21 −18
Original line number Diff line number Diff line
@@ -20,15 +20,14 @@ import android.os.Parcel;
import android.os.Parcelable;

/**
 * Represents the Quality of Service (QoS) settings for a Bluetooth HID Device
 * application.
 * Represents the Quality of Service (QoS) settings for a Bluetooth HID Device application.
 *
 * The BluetoothHidDevice framework will update the L2CAP QoS settings for the
 * app during registration.
 * <p>The BluetoothHidDevice framework will update the L2CAP QoS settings for the app during
 * registration.
 *
 * {@see BluetoothHidDevice}
 * <p>{@see BluetoothHidDevice}
 *
 * {@hide}
 * <p>{@hide}
 */
public final class BluetoothHidDeviceAppQosSettings implements Parcelable {

@@ -46,13 +45,12 @@ public final class BluetoothHidDeviceAppQosSettings implements Parcelable {
    public static final int MAX = (int) 0xffffffff;

    /**
     * Create a BluetoothHidDeviceAppQosSettings object for the Bluetooth L2CAP channel.
     * The QoS Settings is optional.
     * Recommended to use BluetoothHidDeviceAppQosSettings.Builder.
     * {@see <a href="https://www.bluetooth.com/specifications/profiles-overview">
     *     https://www.bluetooth.com/specifications/profiles-overview
     *     </a>
     *     Bluetooth HID Specfication v1.1.1 Section 5.2 and Appendix D }
     * Create a BluetoothHidDeviceAppQosSettings object for the Bluetooth L2CAP channel. The QoS
     * Settings is optional. Recommended to use BluetoothHidDeviceAppQosSettings.Builder. {@see <a
     * href="https://www.bluetooth.com/specifications/profiles-overview">
     * https://www.bluetooth.com/specifications/profiles-overview </a> Bluetooth HID Specfication
     * v1.1.1 Section 5.2 and Appendix D }
     *
     * @param serviceType L2CAP service type
     * @param tokenRate L2CAP token rate
     * @param tokenBucketSize L2CAP token bucket size
@@ -127,9 +125,7 @@ public final class BluetoothHidDeviceAppQosSettings implements Parcelable {
        };
    }

    /**
     * A helper to build the BluetoothHidDeviceAppQosSettings object.
     */
    /** A helper to build the BluetoothHidDeviceAppQosSettings object. */
    public static class Builder {
        // Optional parameters - initialized to default values
        private int mServiceType = SERVICE_BEST_EFFORT;
@@ -141,6 +137,7 @@ public final class BluetoothHidDeviceAppQosSettings implements Parcelable {

        /**
         * Set the service type.
         *
         * @param val service type. Should be one of {SERVICE_NO_TRAFFIC, SERVICE_BEST_EFFORT,
         *     SERVICE_GUARANTEED}, with SERVICE_BEST_EFFORT being the default one.
         * @return BluetoothHidDeviceAppQosSettings Builder with specified service type.
@@ -151,6 +148,7 @@ public final class BluetoothHidDeviceAppQosSettings implements Parcelable {
        }
        /**
         * Set the token rate.
         *
         * @param val token rate
         * @return BluetoothHidDeviceAppQosSettings Builder with specified token rate.
         */
@@ -161,6 +159,7 @@ public final class BluetoothHidDeviceAppQosSettings implements Parcelable {

        /**
         * Set the bucket size.
         *
         * @param val bucket size
         * @return BluetoothHidDeviceAppQosSettings Builder with specified bucket size.
         */
@@ -171,6 +170,7 @@ public final class BluetoothHidDeviceAppQosSettings implements Parcelable {

        /**
         * Set the peak bandwidth.
         *
         * @param val peak bandwidth
         * @return BluetoothHidDeviceAppQosSettings Builder with specified peak bandwidth.
         */
@@ -180,6 +180,7 @@ public final class BluetoothHidDeviceAppQosSettings implements Parcelable {
        }
        /**
         * Set the latency.
         *
         * @param val latency
         * @return BluetoothHidDeviceAppQosSettings Builder with specified latency.
         */
@@ -190,6 +191,7 @@ public final class BluetoothHidDeviceAppQosSettings implements Parcelable {

        /**
         * Set the delay variation.
         *
         * @param val delay variation
         * @return BluetoothHidDeviceAppQosSettings Builder with specified delay variation.
         */
@@ -200,6 +202,7 @@ public final class BluetoothHidDeviceAppQosSettings implements Parcelable {

        /**
         * Build the BluetoothHidDeviceAppQosSettings object.
         *
         * @return BluetoothHidDeviceAppQosSettings object with current settings.
         */
        public BluetoothHidDeviceAppQosSettings build() {
+12 −13
Original line number Diff line number Diff line
@@ -22,16 +22,14 @@ import android.os.Parcelable;
import java.util.Arrays;

/**
 * Represents the Service Discovery Protocol (SDP) settings for a Bluetooth
 * HID Device application.
 * Represents the Service Discovery Protocol (SDP) settings for a Bluetooth HID Device application.
 *
 * The BluetoothHidDevice framework adds the SDP record during app
 * registration, so that the Android device can be discovered as a Bluetooth
 * HID Device.
 * <p>The BluetoothHidDevice framework adds the SDP record during app registration, so that the
 * Android device can be discovered as a Bluetooth HID Device.
 *
 * {@see BluetoothHidDevice}
 * <p>{@see BluetoothHidDevice}
 *
 * {@hide}
 * <p>{@hide}
 */
public final class BluetoothHidDeviceAppSdpSettings implements Parcelable {

@@ -43,18 +41,19 @@ public final class BluetoothHidDeviceAppSdpSettings implements Parcelable {

    /**
     * Create a BluetoothHidDeviceAppSdpSettings object for the Bluetooth SDP record.
     *
     * @param name Name of this Bluetooth HID device. Maximum length is 50 bytes.
     * @param description Description for this Bluetooth HID device. Maximum length is 50 bytes.
     * @param provider Provider of this Bluetooth HID device. Maximum length is 50 bytes.
     * @param subclass Subclass of this Bluetooth HID device.
     * See <a href="www.usb.org/developers/hidpage/HID1_11.pdf">
     * @param subclass Subclass of this Bluetooth HID device. See <a
     *     href="www.usb.org/developers/hidpage/HID1_11.pdf">
     *     www.usb.org/developers/hidpage/HID1_11.pdf Section 4.2</a>
     * @param descriptors Descriptors of this Bluetooth HID device.
     * See <a href="www.usb.org/developers/hidpage/HID1_11.pdf">
     * @param descriptors Descriptors of this Bluetooth HID device. See <a
     *     href="www.usb.org/developers/hidpage/HID1_11.pdf">
     *     www.usb.org/developers/hidpage/HID1_11.pdf Chapter 6</a> Maximum length is 2048 bytes.
     */
    public BluetoothHidDeviceAppSdpSettings(String name, String description, String provider,
            byte subclass, byte[] descriptors) {
    public BluetoothHidDeviceAppSdpSettings(
            String name, String description, String provider, byte subclass, byte[] descriptors) {
        this.name = name;
        this.description = description;
        this.provider = provider;
+33 −40

File changed.

Preview size limit exceeded, changes collapsed.

Loading