两部手机开启蓝牙,只“搜索”而不“匹配”,可以获得RSSI吗?
我试过官方demo,但是根本搜索不到任何手机(两部手机是没问题的,可以匹配的到),也搜不到粗粮手环。
我想获取RSSI来计算大概距离。
另外下面这些网上搜到的代码我试过了也没用
/*------------------------------------------------------------------------------*/
要拿到蓝牙信号指示值 rssi 分为两个步骤。
1.在oncreate方法里面增加 注册扫描广播
public void onCreate(Bundle savedInstanceState) {// 注册开始发现广播。 IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_ACL_CONNECTED); this.registerReceiver(mReceiver, filter); }
2.新建BroadcastReceiver广播对象,并实现里面的onreceive方法,在onreceive得到rssi(信号强度)。
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();//当设备开始扫描时。 if (BluetoothDevice.ACTION_FOUND.equals(action)) { //从Intent得到blueDevice对象 BluetoothDevice device = intent .getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); if (device.getBondState() != BluetoothDevice.BOND_BONDED) { //信号强度。 short rssi = intent.getExtras().getShort( BluetoothDevice.EXTRA_RSSI); } } } };