6. 設(shè)置MTU
藍(lán)牙連接后的通訊默認(rèn)MTU為23字節(jié),被底層通訊占用了3字節(jié),因此只能留給我們20字節(jié),如果要增大MTU,需要使用這個(gè)方法:
/**
* 設(shè)置mtu
*
* @param mtu mtu的大小
* @return 如果設(shè)置成功返回true,否則返回false
*/
public boolean requestMtu(int mtu) {
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && mBluetoothGatt.requestMtu(mtu);
}
這個(gè)方法只有在Android 5.0 及以上才有。設(shè)置后也會(huì)有響應(yīng)的回調(diào)方法被調(diào)用:
private final BluetoothGattCallback mGattCallback = new BluetoothGattCallback() {
@Override
public void onMtuChanged(BluetoothGatt gatt, int mtu, int status) {
super.onMtuChanged(gatt, mtu, status);
// ...
}
};
7. 讀取rssi值
mBluetoothGatt.readRemoteRssi();
讀取方法
@Override
public void onReadRemoteRssi(BluetoothGatt gatt, int rssi, int status) {
super.onReadRemoteRssi(gatt, rssi, status);
//...
}
值在回調(diào)中返回。
rssi表示藍(lán)牙的信號(hào)強(qiáng)調(diào),為負(fù)值,值越接近與0信號(hào)強(qiáng)度越大。