0

我把mBluetoothGatt.readRemoteRssi(); 进入 mGattCallback。

private final BluetoothGattCallback mGattCallback = new BluetoothGattCallback() {
    @Override
    public void onConnectionStateChange(BluetoothGatt gatt, int status,
            int newState) {
        // TODO Auto-generated method stub
        String intentAction;
        if(newState == BluetoothProfile.STATE_CONNECTED) {
            intentAction = ACTION_GATT_CONNECTED;
            mConnectionState = STATE_CONNECTED;
            mBluetoothGatt.readRemoteRssi();
                .
                .
                .

并将onReadRemoteRssi放在BluetoothGattCallback 函数中

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

        public void onReadRemoteRssi(BluetoothGatt gatt, int rssi, int status) {
            final Intent rssiIntent = new Intent(BluetoothLeService.this, DeviceControl.class);
            rssiIntent.putExtra(DeviceControl.RSSI, rssi);
        }


        };//BluetoothGattCallback End

它会调用readRemoteRssi()和onReadRemoteRssi(),但是我不知道为什么rssi是0...

日志看起来像:

D/BluetoothGatt( 3684): readRssi() - device: 90:59:AF:0B:8A:AB
D/BtGatt.GattService( 2463): readRemoteRssi() - address=90:59:AF:0B:8A:AB
                    .
                    .
                    .
D/BtGatt.GattService( 2463): onReadRemoteRssi() - clientIf=4 address=90:59:AF:0B:8A:AB, rssi=0, status=0
D/BluetoothGatt( 3684): onReadRemoteRssi() - Device=90:59:AF:0B:8A:AB rssi=0 status=0

我确定我的 BLE 设备是正常的。但我不知道为什么rssi值是o??

有人可以教我吗??

谢谢!!

4

2 回答 2

1

根据 BT 控制器,值0可能意味着 RSSI 在“黄金接收功率范围”内。如果值为负,则表示小于 -60 dB,如果值为正,则表示高于 -40 dB。

HCI_Read_RSSI()Bluetopia 堆栈中的低级调用也是如此。我不确定这是否适用于您的情况。

在此处查看这篇文章的结尾:http: //www.palowireless.com/infotooth/tutorial/radio.asp,其中讨论了 RSSI。

尝试增加 BLE 设备的范围,使 RSSI 脱离黄金范围,也许你会得到非零值。

于 2013-10-24T19:45:14.850 回答
1

我相信这种情况下的 RSSI 等级从 -100 到 0,其中 0 是最强的。尝试将您的蓝牙设备移到更远的地方,看看您是否得到一个非零数字。

于 2015-05-08T15:15:01.383 回答