2016-05-02 37 views
0

我試圖使用Altbeacon庫檢測TI SensorTag作爲iBeacon。使用Altbeacon無法檢測信標(TI SensorTag CC2650)

我已經從Altbeacon教程中實現的代碼,並試圖解析成iBeacon顯示佈局,在這篇文章中描述:

Is this the correct layout to detect iBeacons with AltBeacon's Android Beacon Library?

然而,在

Collection<Beacon> beacons = 0 

規模甚至儘管我可以在Logfile中找到Beacon,如下所示:

D/BluetoothLeScanner:onScanResult() - ScanResult {mDevice = A0:E6:F8:B6:62:01,mScanRecord = ScanRecord [mAdvertiseFlags = 5,mServiceUuids = [0000aa80-0000-1000-8000-00805f9b34fb],mManufacturerSpecificData = {13 = [3,0,0]},mServiceData = {},mTxPowerLevel = 0,mDeviceName = CC2650 SensorTag],mRssi = -36,mTimestampNanos = 625504179339285}

我的代碼看起來如下:

public class BeaconActivity extends Activity implements BeaconConsumer { 

    private final static int REQUEST_ENABLE_BT = 1; 
    private static final String TAG = "BeaconActivity"; 

    private BeaconManager beaconManager = null; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_beacon); 
     beaconManager = BeaconManager.getInstanceForApplication(this); 
     beaconManager.getBeaconParsers().add(new BeaconParser(). 
       setBeaconLayout("m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24")); 
     beaconManager.bind(this); 
    } 

    @Override 
    public void onBeaconServiceConnect() { 
     beaconManager.setRangeNotifier(new RangeNotifier() { 
      @Override 
      public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region) { 
       Log.d(TAG, "onBeaconService"); 
       if (beacons.size() > 0) { 
        Beacon firstBeacon = beacons.iterator().next(); 
        Log.i(TAG, "The first beacon " + firstBeacon.toString() + " is about " + firstBeacon.getDistance() + " meters away."); 
       } 
      } 
     }); 

     try { 
      beaconManager.startRangingBeaconsInRegion(new Region("myRangingUniqueId", null, null, null)); 

     } catch (RemoteException e) { 
      Log.v(TAG, "Error whilte trying to startRangingBeaconsInRegion: ", e); 
     } 
    } 

回答

0

下面顯示的日誌行表示檢測到的BLE數據包是而不是的信標傳輸。這可能意味着SensorTag沒有裝載正確的固件作爲信標傳輸。上述

D/BluetoothLeScanner: onScanResult() - ScanResult{mDevice=A0:E6:F8:B6:62:01, >mScanRecord=ScanRecord [mAdvertiseFlags=5, mServiceUuids=[0000aa80-0000-1000->8000-00805f9b34fb], mManufacturerSpecificData={13=[3, 0, 0]}, mServiceData={}, >mTxPowerLevel=0, mDeviceName=CC2650 SensorTag], mRssi=-36, >mTimestampNanos=625504179339285}

意味着檢測到的SensorTag傳輸正在發送GATT服務UUID和製造商廣告生產廠家德州儀器具有三個數據字節:03 00 00即傳輸不對應於任何已知的信標格式。

+0

我以爲SensorTag包含iBeacon技術。至少我在這裏閱讀[鏈接](http://www.ti.com/tool/cc2650stk) –

+0

開箱即用,它沒有配置爲表現爲信標。您必須在設備上加載特定的固件才能執行此操作。 – davidgyoung