Merge "Bluetooth HID Device: format code, fix docstring, hide unplug()"

am: 0d3990b235

Change-Id: Icbbaec689208fc9b890a10c16f7b7fa910a5a66c
This commit is contained in:
Hansong Zhang
2017-12-07 21:55:10 +00:00
committed by android-build-merger
4 changed files with 148 additions and 166 deletions

View File

@@ -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,9 +66,8 @@ public final class BluetoothHidDevice implements BluetoothProfile {
/**
* Constants representing device subclass.
*
* @see #registerApp
* (BluetoothHidDeviceAppQosSettings, BluetoothHidDeviceAppQosSettings,
* BluetoothHidDeviceAppQosSettings, BluetoothHidDeviceCallback)
* @see #registerApp (BluetoothHidDeviceAppQosSettings, BluetoothHidDeviceAppQosSettings,
* BluetoothHidDeviceAppQosSettings, BluetoothHidDeviceCallback)
*/
public static final byte SUBCLASS1_NONE = (byte) 0x00;
public static final byte SUBCLASS1_KEYBOARD = (byte) 0x40;
@@ -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,13 +180,11 @@ public final class BluetoothHidDevice implements BluetoothProfile {
doBind();
}
} catch (IllegalStateException e) {
Log.e(TAG,
"onBluetoothStateChange: could not bind to HID Dev "
+ "service: ", e);
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 "
+ "service: ", e);
Log.e(TAG, "onBluetoothStateChange: could not bind to HID Dev "
+ "service: ", e);
}
} else {
Log.d(TAG, "Unbinding service...");
@@ -200,23 +194,25 @@ public final class BluetoothHidDevice implements BluetoothProfile {
}
};
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);
}
}
public void onServiceDisconnected(ComponentName className) {
Log.d(TAG, "onServiceDisconnected()");
mService = null;
if (mServiceListener != null) {
mServiceListener.onServiceDisconnected(BluetoothProfile.HID_DEVICE);
}
}
};
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);
}
}
public void onServiceDisconnected(ComponentName className) {
Log.d(TAG, "onServiceDisconnected()");
mService = null;
if (mServiceListener != null) {
mServiceListener.onServiceDisconnected(BluetoothProfile.HID_DEVICE);
}
}
};
BluetoothHidDevice(Context context, ServiceListener listener) {
Log.v(TAG, "BluetoothHidDevice");
@@ -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,33 +334,31 @@ 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
* 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
* BluetoothHidDeviceAppQosSettings.Builder for default values.
* @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
* 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,
BluetoothHidDeviceAppQosSettings inQos, BluetoothHidDeviceAppQosSettings outQos,
BluetoothHidDeviceCallback callback) {
Log.v(TAG, "registerApp(): sdp=" + sdp + " inQos=" + inQos + " outQos=" + outQos
+ " callback=" + callback);
+ " callback=" + callback);
boolean result = false;
@@ -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.
*/
@@ -429,7 +416,7 @@ public final class BluetoothHidDevice implements BluetoothProfile {
* Sends report to remote host using interrupt channel.
*
* @param id Report Id, as defined in descriptor. Can be 0 in case Report Id are not defined in
* descriptor.
* descriptor.
* @param data Report data, not including Report Id.
* @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.
*/

View File

@@ -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
@@ -123,13 +121,11 @@ public final class BluetoothHidDeviceAppQosSettings implements Parcelable {
/** @return an int array representation of this instance */
public int[] toArray() {
return new int[] {
serviceType, tokenRate, tokenBucketSize, peakBandwidth, latency, delayVariation
serviceType, tokenRate, tokenBucketSize, peakBandwidth, latency, delayVariation
};
}
/**
* 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,8 +137,9 @@ 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.
* SERVICE_GUARANTEED}, with SERVICE_BEST_EFFORT being the default one.
* @return BluetoothHidDeviceAppQosSettings Builder with specified service type.
*/
public Builder serviceType(int val) {
@@ -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() {

View File

@@ -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;

View File

@@ -19,46 +19,43 @@ package android.bluetooth;
import android.util.Log;
/**
* The template class that applications use to call callback functions on
* events from the HID host. Callback functions are wrapped in this class and
* registered to the Android system during app registration.
* The template class that applications use to call callback functions on events from the HID host.
* Callback functions are wrapped in this class and registered to the Android system during app
* registration.
*
* {@see BluetoothHidDevice}
* <p>{@see BluetoothHidDevice}
*
* {@hide}
* <p>{@hide}
*/
public abstract class BluetoothHidDeviceCallback {
private static final String TAG = "BluetoothHidDevCallback";
/**
* Callback called when application registration state changes. Usually it's
* called due to either
* {@link BluetoothHidDevice#registerApp
* (String, String, String, byte, byte[], BluetoothHidDeviceCallback)}
* or
* {@link BluetoothHidDevice#unregisterApp()}
* , but can be also unsolicited in case e.g. Bluetooth was turned off in
* which case application is unregistered automatically.
* Callback called when application registration state changes. Usually it's called due to
* either {@link BluetoothHidDevice#registerApp (String, String, String, byte, byte[],
* BluetoothHidDeviceCallback)} or {@link BluetoothHidDevice#unregisterApp()} , but can be also
* unsolicited in case e.g. Bluetooth was turned off in which case application is unregistered
* automatically.
*
* @param pluggedDevice {@link BluetoothDevice} object which represents host that currently has
* Virtual Cable established with device. Only valid when application is registered, can be
* <code>null</code>.
* Virtual Cable established with device. Only valid when application is registered, can be
* <code>null</code>.
* @param registered <code>true</code> if application is registered, <code>false</code>
* otherwise.
* otherwise.
*/
public void onAppStatusChanged(BluetoothDevice pluggedDevice, boolean registered) {
Log.d(TAG, "onAppStatusChanged: pluggedDevice=" + pluggedDevice + " registered="
+ registered);
Log.d(TAG,
"onAppStatusChanged: pluggedDevice=" + pluggedDevice + " registered=" + registered);
}
/**
* Callback called when connection state with remote host was changed.
* Application can assume than Virtual Cable is established when called with
* {@link BluetoothProfile#STATE_CONNECTED} <code>state</code>.
* Callback called when connection state with remote host was changed. Application can assume
* than Virtual Cable is established when called with {@link BluetoothProfile#STATE_CONNECTED}
* <code>state</code>.
*
* @param device {@link BluetoothDevice} object representing host device which connection state
* was changed.
* was changed.
* @param state Connection state as defined in {@link BluetoothProfile}.
*/
public void onConnectionStateChanged(BluetoothDevice device, int state) {
@@ -66,14 +63,14 @@ public abstract class BluetoothHidDeviceCallback {
}
/**
* Callback called when GET_REPORT is received from remote host. Should be
* replied by application using
* {@link BluetoothHidDevice#replyReport(BluetoothDevice, byte, byte, byte[])}.
* Callback called when GET_REPORT is received from remote host. Should be replied by
* application using {@link BluetoothHidDevice#replyReport(BluetoothDevice, byte, byte,
* byte[])}.
*
* @param type Requested Report Type.
* @param id Requested Report Id, can be 0 if no Report Id are defined in descriptor.
* @param bufferSize Requested buffer size, application shall respond with at least given number
* of bytes.
* of bytes.
*/
public void onGetReport(BluetoothDevice device, byte type, byte id, int bufferSize) {
Log.d(TAG, "onGetReport: device=" + device + " type=" + type + " id=" + id + " bufferSize="
@@ -81,9 +78,9 @@ public abstract class BluetoothHidDeviceCallback {
}
/**
* Callback called when SET_REPORT is received from remote host. In case
* received data are invalid, application shall respond with
* {@link BluetoothHidDevice#reportError(BluetoothDevice, byte)}.
* Callback called when SET_REPORT is received from remote host. In case received data are
* invalid, application shall respond with {@link
* BluetoothHidDevice#reportError(BluetoothDevice, byte)}.
*
* @param type Report Type.
* @param id Report Id.
@@ -94,10 +91,9 @@ public abstract class BluetoothHidDeviceCallback {
}
/**
* Callback called when SET_PROTOCOL is received from remote host.
* Application shall use this information to send only reports valid for
* given protocol mode. By default,
* {@link BluetoothHidDevice#PROTOCOL_REPORT_MODE} shall be assumed.
* Callback called when SET_PROTOCOL is received from remote host. Application shall use this
* information to send only reports valid for given protocol mode. By default, {@link
* BluetoothHidDevice#PROTOCOL_REPORT_MODE} shall be assumed.
*
* @param protocol Protocol Mode.
*/
@@ -106,9 +102,8 @@ public abstract class BluetoothHidDeviceCallback {
}
/**
* Callback called when report data is received over interrupt channel.
* Report Type is assumed to be
* {@link BluetoothHidDevice#REPORT_TYPE_OUTPUT}.
* Callback called when report data is received over interrupt channel. Report Type is assumed
* to be {@link BluetoothHidDevice#REPORT_TYPE_OUTPUT}.
*
* @param reportId Report Id.
* @param data Report data.
@@ -118,10 +113,8 @@ public abstract class BluetoothHidDeviceCallback {
}
/**
* Callback called when Virtual Cable is removed. This can be either due to
* {@link BluetoothHidDevice#unplug(BluetoothDevice)} or request from remote
* side. After this callback is received connection will be disconnected
* automatically.
* Callback called when Virtual Cable is removed. After this callback is
* received connection will be disconnected automatically.
*/
public void onVirtualCableUnplug(BluetoothDevice device) {
Log.d(TAG, "onVirtualCableUnplug: device=" + device);