我怀疑您在使用 Nearby 扫描 Raspberry Pi 3 上的 BLE 设备时遇到问题。这可能是 Android 的驱动程序接口与板载蓝牙 LE 芯片的问题。
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);
}
如果您运行此代码,您可以查看日志中是否有任何低级错误,以及在存在信标时计数器是否增加。