私はいくつかのRed Bear Beacon (Android ではデバイスとして課金されます) を 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 } } }); } };
2 番目のアプローチ
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
->によって見つかったものと何らかの形でリンクされていることがわかりましたb0702980-a295-a8ab-f734-031a98a512de
。
誰redbear
かビーコンの経験があり、アプリでビーコンUUID
(E2C56DB5-DFFB-48D2-B060-D0F5A71096E0) を取得する方法を教えてもらえますか?
また
E2C56DB5-DFFB-48D2-B060-D0F5A71096E0
と が異なる方法でエンコードされた同じものを表しているかどうかを誰かに教えてもらえますb0702980-a295-a8ab-f734-031a98a512de
か? はいの場合、どのように変換できますか?
私が十分に明確であることを願っています。助けてください。どんな助けでも大歓迎です!ありがとう。