我在 Android 应用程序中使用了一些Red Bear Beacons(在 Android 中作为bluetooth
设备收费),我想将 UUID 存储在信标中,就像它们在本机应用程序中一样。使用他们提供的样本我无法得到它。
我试过的:
第一种方法
BluetoothManager mBluetoothManager = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE); mBluetoothAdapter = mBluetoothManager.getAdapter(); mBluetoothAdapter.startLeScan(mLeScanCallback); BluetoothAdapter.LeScanCallback mLeScanCallback = new BluetoothAdapter.LeScanCallback() { @Override public void onLeScan(final BluetoothDevice device, final int rssi, final byte[] scanRecord) { runOnUiThread(new Runnable() { @Override public void run() { if (mDevice.indexOf(device) == -1){ mDevice.add(device); byte[] serviceUuidBytes = new byte[16]; String serviceUuid = ""; for (int i = 32, j = 0; i >= 17; i--, j++) { serviceUuidBytes[j] = scanRecord[i]; } serviceUuid = bytesToHex(serviceUuidBytes); Log.i(TAG, "UUID is: " + serviceUuid); //This is the result 420903bf01004915e79610a7f5d060b0 } } }); } };
第二种方法
BluetoothLeScanner mBluetoothLeScanner = mBluetoothAdapter.getBluetoothLeScanner(); mBluetoothLeScanner.startScan(mScanCallback); ScanCallback mScanCallback = new ScanCallback() { public void onScanResult(int callbackType, android.bluetooth.le.ScanResult result) { Log.i(TAG, "scan result" + result.toString()); //this contains something like [...] mServiceUuids=[b0702980-a295-a8ab-f734-031a98a512de][....] }; };
这些结果都不420903bf01004915e79610a7f5d060b0
是b0702980-a295-a8ab-f734-031a98a512de
我要找的,应该是这样的:(来自RedBear BeaconTool
应用程序的屏幕截图)
在对我的信标进行一些测试后,我可以看到这个 UUID 以某种方式与我的mBluetoothLeScanner
->找到的 UUID 相关联,b0702980-a295-a8ab-f734-031a98a512de
这让我认为这是相同的,但以不同的方式编码(显示)。
有没有人使用redbear
信标,可以告诉我如何UUID
在我的应用程序中获取信标(E2C56DB5-DFFB-48D2-B060-D0F5A71096E0)?
或者
谁能告诉我是否E2C56DB5-DFFB-48D2-B060-D0F5A71096E0
并b0702980-a295-a8ab-f734-031a98a512de
代表以不同方式编码的同一事物,如果是,如何转换?
希望我足够清楚,请帮助我;任何帮助将不胜感激!谢谢。