我試圖使用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);
}
}
我以爲SensorTag包含iBeacon技術。至少我在這裏閱讀[鏈接](http://www.ti.com/tool/cc2650stk) –
開箱即用,它沒有配置爲表現爲信標。您必須在設備上加載特定的固件才能執行此操作。 – davidgyoung