在android-things设备上检测iBeacons(Raspberry Pi 3)

时间:2017-01-22 09:37:09

标签: bluetooth ibeacon android-things

是否有可能在Android-things设备上检测到iBeacons(Raspberry Pi 3)?

我尝试订阅蓝牙低功耗(BLE)信标消息,Nearby Messages API.我的应用订阅了foreground中的ibeacon消息,但未注册到已注册的iBeacons。

Everythings工作正常,但在开始时我收到了这条消息:

E/BluetoothAdapter: Bluetooth binder is null

有没有人在Android-things设备(Raspberry Pi 3)上使用iBeacon检测经验?

3 个答案:

答案 0 :(得分:1)

更新:自Android Things开发者预览版3发布以来,现已推出蓝牙和BLE。

在当前版本的Android产品中禁用蓝牙,预计将在不久的将来推出蓝牙。

答案 1 :(得分:0)

我怀疑您在使用Nearby扫描Raspberry Pi 3上的BLE设备时遇到问题。这可能是Android的板载蓝牙LE芯片的驱动程序接口的问题。

Nearby是一个难以解决的API,因为它是高级别和不透明的。我会尝试使用低级扫描API来查看是否可以获得更好的错误消息。您可以尝试运行我的超级简单BLE packet counter应用。它像这样进行扫描,只记录结果计数:

private BluetoothAdapter mBluetoothAdapter;
private boolean mScanning;
private Handler mHandler;
private long mAdvertisementCount = 0;
private BluetoothAdapter.LeScanCallback mLeScanCallback =
        new BluetoothAdapter.LeScanCallback() {
            @Override
            public void onLeScan(final BluetoothDevice device, int rssi,
                                 byte[] scanRecord) {
                mAdvertisementCount++;
                Log.d(TAG, ""+mAdvertisementCount);
            }
        };

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    final BluetoothManager bluetoothManager =
            (BluetoothManager) getSystemService(this.BLUETOOTH_SERVICE);
    mBluetoothAdapter = bluetoothManager.getAdapter();
}

@Override
protected void onResume() {
    super.onResume();
    mBluetoothAdapter.startLeScan(mLeScanCallback);
}

protected void onPause() {
    super.onPause();
    mBluetoothAdapter.stopLeScan(mLeScanCallback);
}

如果运行此代码,您可以查看日志中是否出现任何低级别错误,以及是否存在信标时计数器增加。

答案 2 :(得分:0)

根据发行说明:https://developer.android.com/things/preview/releases.html

已知问题

  • 蓝牙API目前已停用。