2015-04-30 30 views
1

我根據幾個教程像https://learn.adafruit.com/pibeacon-ibeacon-with-a-raspberry-pi/setting-up-the-pi樹莓派iBeacon顯示丟失的名稱特徵

一切工作正常,只要我能找到不同的應用程序的信標中設定了一個樹莓派作爲iBeacon顯示。 但我也從BeaconInside購買了一個「真正」的iBeacon,並且在將兩個信標的廣告數據與藍牙LE掃描應用程序進行比較時,我注意到存在差異:

pi-beacon缺少「Name (完成)」和‘服務數據’記載: http://postimg.org/image/yc5wky7bv/

我也試圖掃描都與Android BluetoothLeGatt示例應用程序(developer.android.com/samples/BluetoothLeGatt/index.html),並得出了相同的結果:

Beaconinside:

8836-8889/com.example.android.bluetoothlegatt D/BluetoothLeScanner﹕ onScanResult() - ScanResult{mDevice=78:A5:04:39:8C:3A, mScanRecord=ScanRecord [mAdvertiseFlags=6, mServiceUuids=null, mManufacturerSpecificData={76=[2, 21, -16, 1, -117, -101, 117, 9, 76, 49, -87, 5, 26, 39, -45, -100, 0, 60, 51, 1, -86, -36, -65]}, mServiceData={0000d00d-0000-1000-8000-00805f9b34fb=[1, 51, -36, -86, 93]}, mTxPowerLevel=0, mDeviceName=BEACON 39:8C:3A], mRssi=-76, mTimestampNanos=387592434672407} 

樹莓派烽火臺:

8836-8889/com.example.android.bluetoothlegatt D/BluetoothLeScanner﹕ onScanResult() - ScanResult{mDevice=5C:F3:70:61:93:C7, mScanRecord=ScanRecord [mAdvertiseFlags=6, mServiceUuids=null, mManufacturerSpecificData={76=[2, 21, -30, -59, 109, -75, -33, -5, 72, -46, -80, 96, -48, -11, -89, 16, -106, -32, 17, 17, 18, 17, -56]}, mServiceData={}, mTxPowerLevel=-2147483648, mDeviceName=null], mRssi=-28, mTimestampNanos=387592794842927} 

的設備名稱爲空,也沒有ServiceData。

hciconfig hci0 -a:

hci0:類型:BR/EDR總線:USB
BD地址:5C:F3:70:61:93:C7 ACL MTU:1021:8 SCO MTU:64: 1
UP RUNNING PSCAN ISCAN
RX字節:2785 ACL:0 SCO:0事件:73個錯誤:0
TX字節:1348 ACL:0 SCO:0命令:71個錯誤:0
特點:爲0xBF 0xFE的0xcf 0xfe 0xdb 0xff 0x7b 0x87
數據包類型:DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
鏈接政策:RSWITCH監聽
Link模式:SLAVE ACCEPT
名稱: 'ABC'
類:0x000000處
服務類:未指定
設備類:雜項,
HCI版本:4.0(爲0x6)修訂版:爲0x1000
LMP版本:4.0(爲0x6)顛覆:0x220e
廠商:Broadcom公司(15)

是否有人知道爲什麼會出現的PI信標沒有名字&服務數據記錄?

回答

0

設備名稱作爲BLE掃描響應的一部分發送,而不是信標廣告的一部分。藍牙信標通常不會在掃描響應中發送名稱。

如果你想使一個設備的BlueZ在掃描響應發送它的名字,你可以嘗試用以下命令將其設置:hciconfig hci0 name 'Device Name'

+0

謝謝。我已經嘗試過這種方式,但沒有幫助。 – Tinkerbell