gpt4 book ai didi

Android 低功耗蓝牙 readRemoteRssi

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:49:30 26 4
gpt4 key购买 nike

我不知道如何让“onReadRemoteRssi”回调工作。

我的代码很简单:

final BluetoothManager bluetoothManager = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE);
BluetoothAdapter mBluetoothAdapter = bluetoothManager.getAdapter();
BluetoothGatt gatt;

mBluetoothAdapter.startLeScan(new LeScanCallback() {

@Override
public void onLeScan(BluetoothDevice device, int rssi, byte[] record) {
gatt = device.connectGatt(getApplicationContext(), false, new BluetoothGattCallback() {
@Override
public void onReadRemoteRssi(BluetoothGatt gatt, int rssi, int status) {
super.onReadRemoteRssi(gatt, rssi, status);
Log.d(TAG, "rssi is : " + rssi);
}
});
}
});

gatt.readRemoteRssi(); //returns true

永远不会调用回调。有人有什么主意吗 ?

谢谢!

最佳答案

将readRemoteRssi()放在BluetoothGattCallback的回调onConnectionStateChange()中

private final BluetoothGattCallback mGattCallback = new BluetoothGattCallback() {
@Override
public void onConnectionStateChange(BluetoothGatt gatt, int status, int newState) {
String intentAction;
if (newState == BluetoothProfile.STATE_CONNECTED) {
intentAction = ACTION_GATT_CONNECTED;
mConnectionState = STATE_CONNECTED;
boolean rssiStatus = mBluetoothGatt.readRemoteRssi();
broadcastUpdate(intentAction);
// Attempts to discover services after successful connection.
Log.i(TAG, "Attempting to start service discovery:" +
mBluetoothGatt.discoverServices());
}
}
};

并且还将 onReadRemoteRssi 放在 BluetoothGattCallback 函数中‍‍‍

@Override
public void onReadRemoteRssi(BluetoothGatt gatt, int rssi, int status){
if (status == BluetoothGatt.GATT_SUCCESS) {
Log.d(TAG, String.format("BluetoothGatt ReadRssi[%d]", rssi));
}
}

关于Android 低功耗蓝牙 readRemoteRssi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19365495/

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