如何获取已连接蓝牙设备的RSSI值

问题描述 投票:0回答:1

我正在尝试在我的 Android 程序中获取已连接蓝牙设备的 RSSI 值。 下面是代码:

gatt = mDevice.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);
        ((TextView) findViewById(R.id.rssiValue)).setText(rssi);
    }
});
gatt.readRemoteRssi();

但是方法onReadRemoteRssi不返回任何值。 请帮我解决这个问题。

bluetooth-lowenergy rssi
1个回答
1
投票
if(ContextCompat.checkSelfPermission(RSSI.this,Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
   ActivityCompat.requestPermissions(
     RSSI.this, 
     new String[] { 
       Manifest.permission.BLUETOOTH,
       Manifest.permission.BLUETOOTH_ADMIN,
       Manifest.permission.ACCESS_FINE_LOCATION
     },
     1
   );

}

  1. 确保从 BlueetoothAdapter 检索到的 mDevice 变量不为空
  2. 最后确保设置了权限,上面的代码将为您提供获取蓝牙绑定设备所需的权限。
© www.soinside.com 2019 - 2024. All rights reserved.