是否有可能在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检测经验?
答案 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)