蓝牙设备上的相同UUID与android配对

时间:2016-02-18 16:00:02

标签: android bluetooth

我开始研究蓝牙和Android通信。所以我从同一个供应商处购买了一个与arduino兼容的突破和盾牌。所以我将这两个与我正在处理的Android应用程序配对,但我意识到这两个产品会返回相同的UUID。我是从同一家供应商那里购买的。

02-18 10:51:24.089:D / ActivateFragment(26721):UUID:00001101-0000-1000-8000-00805f9b34fb 02-18 10:51:24.089:D / ActivateFragment(26721):UUID:00000000-0000-1000-8000-00805f9b34fb

这是我的Android应用程序代码打印出UUID。

    private final BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        String action = intent.getAction();
        Log.i(TAG, "daction=="+  action);

        if (BluetoothAdapter.ACTION_DISCOVERY_STARTED.equals(action)) {
            //discovery starts, we can show progress dialog or perform other tasks
        } else if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)) {
            //discovery finishes, dismis progress dialog
        } else if (BluetoothDevice.ACTION_FOUND.equals(action)) {
                   //bluetooth device found
            BluetoothDevice device = (BluetoothDevice) intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
            Log.i(TAG, "bluetooth name is "+ device.getName());
            if (device == null || device.getName() == null || device.getName().isEmpty()) {
                return;
            }
            Log.i(TAG, "Found device " + device.getName() + "=="+ device.getAddress() + "=="+ device.getBondState() + "=="+  device.getType());
            ParcelUuid[] uuids = device.getUuids();
            if (uuids == null) {
                return;
            }
            for (ParcelUuid uuid: uuids) {
                Log.d(TAG, "UUID: " +  uuid.getUuid().toString());
            }
        }
    }
};

所以我无法从Android应用程序连接到两个蓝牙。应用程序连接到它后,它就无法连接到下一个应用程序。有趣的是00001101-0000-1000-8000-00805f9b34fb工作正常,但00000000-0000-1000-8000-00805f9b34fb无法正常工作。

我认为我的应用程序出了问题,但当我连接到它时(一个是活动的,但另一个是活动的)一次一个,它连接到两个。

UUID是否嵌入在蓝牙设备中,Android是从蓝牙设备获取还是由Android手机随机分配?

如果知道这段关系的人将我指向某个网站或任何教程,我将不胜感激。

0 个答案:

没有答案