【问题标题】:Cannot detect Beacons (TI SensorTag CC2650) with Altbeacon无法使用 Altbeacon 检测信标 (TI SensorTag CC2650)
【发布时间】:2016-05-02 14:02:14
【问题描述】:

我正在尝试使用 Altbeacon 库将 TI SensorTag 检测为 iBeacon。

我已经实现了 Altbeacon 教程中的代码,并尝试解析成 iBeacon 布局,如本文所述:

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

但是,大小的

Collection<Beacon> beacons = 0 

即使我可以在日志文件中找到信标,如下所示:

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);
        }
    }

【问题讨论】:

    标签: android bluetooth-lowenergy ibeacon altbeacon


    【解决方案1】:

    下面显示的日志行表示检测到的 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 和制造商德州仪器 (Texas Instruments) 的制造商广告,其中包含三个数据字节:03 00 00。该传输不对应于任何已知的信标格式。

    【讨论】:

    • 我认为 SensorTag 包含 iBeacon 技术。至少我在这里读到了link
    • 开箱即用,它未配置为充当信标。您必须在设备上加载特定固件才能执行此操作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多