在Android中ping蓝牙设备

时间:2013-12-09 21:39:54

标签: android bluetooth

我有没有办法ping Android中的蓝牙设备?蓝牙设备未在Android中连接或配对,但我事先知道设备的MAC地址和PIN。我想要实现的是ping一个MAC地址列表,看看是否有任何设备在范围内。

1 个答案:

答案 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");
    }}};