diff options
-rw-r--r-- | api/current.txt | 1 | ||||
-rw-r--r-- | core/java/android/bluetooth/BluetoothGattServer.java | 18 | ||||
-rw-r--r-- | core/java/android/bluetooth/BluetoothGattServerCallback.java | 12 | ||||
-rw-r--r-- | core/java/android/bluetooth/IBluetoothGattServerCallback.aidl | 1 |
4 files changed, 32 insertions, 0 deletions
diff --git a/api/current.txt b/api/current.txt index 707ddab..27ab204 100644 --- a/api/current.txt +++ b/api/current.txt @@ -6383,6 +6383,7 @@ package android.bluetooth { method public void onDescriptorReadRequest(android.bluetooth.BluetoothDevice, int, int, android.bluetooth.BluetoothGattDescriptor); method public void onDescriptorWriteRequest(android.bluetooth.BluetoothDevice, int, android.bluetooth.BluetoothGattDescriptor, boolean, boolean, int, byte[]); method public void onExecuteWrite(android.bluetooth.BluetoothDevice, int, boolean); + method public void onMtuChanged(android.bluetooth.BluetoothDevice, int); method public void onNotificationSent(android.bluetooth.BluetoothDevice, int); method public void onServiceAdded(int, android.bluetooth.BluetoothGattService); } diff --git a/core/java/android/bluetooth/BluetoothGattServer.java b/core/java/android/bluetooth/BluetoothGattServer.java index e94a8ce..f451340 100644 --- a/core/java/android/bluetooth/BluetoothGattServer.java +++ b/core/java/android/bluetooth/BluetoothGattServer.java @@ -284,6 +284,24 @@ public final class BluetoothGattServer implements BluetoothProfile { Log.w(TAG, "Unhandled exception: " + ex); } } + + /** + * The MTU for a connection has changed + * @hide + */ + public void onMtuChanged(String address, int mtu) { + if (DBG) Log.d(TAG, "onMtuChanged() - " + + "device=" + address + ", mtu=" + mtu); + + BluetoothDevice device = mAdapter.getRemoteDevice(address); + if (device == null) return; + + try { + mCallback.onMtuChanged(device, mtu); + } catch (Exception ex) { + Log.w(TAG, "Unhandled exception: " + ex); + } + } }; /** diff --git a/core/java/android/bluetooth/BluetoothGattServerCallback.java b/core/java/android/bluetooth/BluetoothGattServerCallback.java index 1dd06f2..2afcf9a 100644 --- a/core/java/android/bluetooth/BluetoothGattServerCallback.java +++ b/core/java/android/bluetooth/BluetoothGattServerCallback.java @@ -145,4 +145,16 @@ public abstract class BluetoothGattServerCallback { */ public void onNotificationSent(BluetoothDevice device, int status) { } + + /** + * Callback indicating the MTU for a given device connection has changed. + * + * <p>This callback will be invoked if a remote client has requested to change + * the MTU for a given connection. + * + * @param device The remote device that requested the MTU change + * @param mtu The new MTU size + */ + public void onMtuChanged(BluetoothDevice device, int mtu) { + } } diff --git a/core/java/android/bluetooth/IBluetoothGattServerCallback.aidl b/core/java/android/bluetooth/IBluetoothGattServerCallback.aidl index 5d4d6c6..8b202b2 100644 --- a/core/java/android/bluetooth/IBluetoothGattServerCallback.aidl +++ b/core/java/android/bluetooth/IBluetoothGattServerCallback.aidl @@ -59,4 +59,5 @@ oneway interface IBluetoothGattServerCallback { in byte[] value); void onExecuteWrite(in String address, in int transId, in boolean execWrite); void onNotificationSent(in String address, in int status); + void onMtuChanged(in String address, in int mtu); } |