gpt4 book ai didi

android - Android 上的低功耗蓝牙 : Get event when RSSI changes

转载 作者:行者123 更新时间:2023-11-29 00:11:40 25 4
gpt4 key购买 nike

我可以通过 startLeScan 或通过新的 getBluetoothLeScanner 扫描蓝牙 LE 设备并且工作正常。然而,即使它一直在扫描,它也永远不会检测到同一个设备两次。这很不幸,因为我想在信标的 rssi 发生变化时接收事件。 Android 支持吗?

最佳答案

实现 BluetoothGattCallback 并覆盖 onReadRemoteRssi 方法。

private final BluetoothGattCallback mGattCallback = new BluetoothGattCallback() {
@Override
public void onConnectionStateChange(BluetoothGatt gatt, int status, int newState) {
String intentAction;
if (newState == BluetoothProfile.STATE_CONNECTED) {
broadcastUpdate(intentAction);

} else if (newState == BluetoothProfile.STATE_DISCONNECTED) {
broadcastUpdate(intentAction);
}
}

@Override
public void onReadRemoteRssi(BluetoothGatt gatt, int rssi, int status) {
super.onReadRemoteRssi(gatt, rssi, status);
// use rssi value here
}

@Override
public void onServicesDiscovered(BluetoothGatt gatt, int status) {
if (status == BluetoothGatt.GATT_SUCCESS) {
broadcastUpdate(ACTION_GATT_SERVICES_DISCOVERED);
} else {
Log.w(TAG, "onServicesDiscovered received: " + status);
}
}

@Override
public void onCharacteristicRead(BluetoothGatt gatt,
BluetoothGattCharacteristic characteristic,
int status) {
if (status == BluetoothGatt.GATT_SUCCESS) {
broadcastUpdate(ACTION_DATA_AVAILABLE, characteristic);
}
}

@Override
public void onCharacteristicChanged(BluetoothGatt gatt,
BluetoothGattCharacteristic characteristic) {
broadcastUpdate(ACTION_DATA_AVAILABLE, characteristic);
}
};

关于android - Android 上的低功耗蓝牙 : Get event when RSSI changes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29756571/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com