2017-01-22 59 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事物中被禁用,預計將在不久的將來包括在內。