Android BluetoothGatt 超级方法?
Android BluetoothGatt super methods?
扩展时 BluetoothGattCallback
实现者应该调用超级方法吗?
示例:
public void onCharacteristicWrite(BluetoothGatt gatt,
BluetoothGattCharacteristic characteristic,
int status) {
// Is this needed?
super.onCharacteristicWrite(gatt, characteristic, status);
...
}
在这种情况下,似乎没有必要调用超级方法。
BluetoothGattCallback
class 是抽象的,它的所有方法都是空的。
编辑:
BluetoothGattCallback
是 Android SDK 的一部分,位于本机层之上。
它的方法是从 BluetoothGatt
class 调用的,它处理来自本机层的回调并将它们转换为对 BluetoothGattCallback
方法的调用。
如果您想知道为什么 BluetoothGattCallback
是一个抽象的 class,具有空的实现而不是接口。可能是因为它的回调方法太多了,所以实现一个接口会导致代码不必要的膨胀。
编辑2:
这方面的官方参考并不难获得。 Compatiblity definition 硬件制造商声明他们必须以 Android SDK 中声明的形式实施 Android API。
注意底层native层是通过Android的Binder机制连接的
看过BluetoothGattCallBack
的源码后,好像不需要调用super方法。
因为BluetoothGattCallBack
是一个抽象class并且onCharacteristicWrite
是其中的一个空方法
这是它的源代码:
/**
* Callback indicating the result of a characteristic write operation.
*
* <p>If this callback is invoked while a reliable write transaction is
* in progress, the value of the characteristic represents the value
* reported by the remote device. An application should compare this
* value to the desired value to be written. If the values don't match,
* the application must abort the reliable write transaction.
*
* @param gatt GATT client invoked {@link BluetoothGatt#writeCharacteristic}
* @param characteristic Characteristic that was written to the associated
* remote device.
* @param status The result of the write operation
* {@link BluetoothGatt#GATT_SUCCESS} if the operation succeeds.
*/
public void onCharacteristicWrite(BluetoothGatt gatt,
BluetoothGattCharacteristic characteristic, int status) {
}
扩展时 BluetoothGattCallback
实现者应该调用超级方法吗?
示例:
public void onCharacteristicWrite(BluetoothGatt gatt,
BluetoothGattCharacteristic characteristic,
int status) {
// Is this needed?
super.onCharacteristicWrite(gatt, characteristic, status);
...
}
在这种情况下,似乎没有必要调用超级方法。
BluetoothGattCallback
class 是抽象的,它的所有方法都是空的。
编辑:
BluetoothGattCallback
是 Android SDK 的一部分,位于本机层之上。
它的方法是从 BluetoothGatt
class 调用的,它处理来自本机层的回调并将它们转换为对 BluetoothGattCallback
方法的调用。
如果您想知道为什么 BluetoothGattCallback
是一个抽象的 class,具有空的实现而不是接口。可能是因为它的回调方法太多了,所以实现一个接口会导致代码不必要的膨胀。
编辑2:
这方面的官方参考并不难获得。 Compatiblity definition 硬件制造商声明他们必须以 Android SDK 中声明的形式实施 Android API。
注意底层native层是通过Android的Binder机制连接的
看过BluetoothGattCallBack
的源码后,好像不需要调用super方法。
因为BluetoothGattCallBack
是一个抽象class并且onCharacteristicWrite
是其中的一个空方法
这是它的源代码:
/**
* Callback indicating the result of a characteristic write operation.
*
* <p>If this callback is invoked while a reliable write transaction is
* in progress, the value of the characteristic represents the value
* reported by the remote device. An application should compare this
* value to the desired value to be written. If the values don't match,
* the application must abort the reliable write transaction.
*
* @param gatt GATT client invoked {@link BluetoothGatt#writeCharacteristic}
* @param characteristic Characteristic that was written to the associated
* remote device.
* @param status The result of the write operation
* {@link BluetoothGatt#GATT_SUCCESS} if the operation succeeds.
*/
public void onCharacteristicWrite(BluetoothGatt gatt,
BluetoothGattCharacteristic characteristic, int status) {
}