我有没有办法ping Android中的蓝牙设备?蓝牙设备未在Android中连接或配对,但我事先知道设备的MAC地址和PIN。我想要实现的是ping一个MAC地址列表,看看是否有任何设备在范围内。
答案 0 :(得分:2)
已解决:我所做的是查询设备上可用的服务(可用的UUID)。如果收到UUID,则设备在范围内。
所以步骤是:
注册为UUID操作收到的广播
String action = "android.bluetooth.device.action.UUID";
IntentFilter filter = new IntentFilter(action);
registerReceiver(mReceiver, filter);
根据远程地址创建蓝牙设备并获取其UUID
BluetoothDevice bd = bluetoothAdapter.getRemoteDevice(address);
bd.fetchUuidsWithSdp();
创建一个广播接收器,它带有设备地址,能够告诉我那个
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
//deviceExtra is our in range device
deviceExtra =
intent.getParcelableExtra("android.bluetooth.device.extra.DEVICE");
Parcelable[] uuidExtra =
intent.getParcelableArrayExtra("android.bluetooth.device.extra.UUID");
}}};