Nearby を使用して Raspberry Pi 3 で BLE デバイスをスキャンする際に問題が発生していると思われます。オンボードの Bluetooth LE チップに対する Android のドライバー インターフェイスに問題がある可能性があります。
Nearby は高レベルで不透明なため、トラブルシューティングが難しい API です。低レベルのスキャン API を使用して、より適切なエラー メッセージを取得できるかどうかを確認します。超シンプルなBLE パケット カウンターアプリを実行してみてください。次のようなスキャンを実行し、単純に結果の数をログに記録します。
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);
}
このコードを実行すると、ログに低レベルのエラーが記録されているかどうか、およびビーコンの存在下でカウンターが増加しているかどうかを確認できます。