2017-01-22 58 views
0

是否可以在android-things设备(Raspberry Pi 3)上检测iBeacons?在android-things设备上检测iBeacon(Raspberry Pi 3)

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

万物工作正常,但在开始我得到这个消息:

E/BluetoothAdapter: Bluetooth binder is null

是否有人有对Android的东西装置(树莓派3)iBeacon显示检测的经验吗?

回答

0

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

附近是一个难以解决的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); 
} 

如果你运行这段代码,你可以,如果你在日志中得到任何低级失误看,如果在存在计数器增加一座灯塔。

1

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

蓝牙在当前版本的Android事物中被禁用,预计将在不久的将来包括在内。