Я подозреваю, что у вас проблемы с проверкой на устройства BLE на малине Pi 3, используя рядом. Возможно, проблема связана с интерфейсом драйвера Android с встроенным чипом Bluetooth 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);
}
Если запустить этот код вы можете увидеть, если вы получаете какие-либо ошибки низкого уровня в журналах, и если счетчик увеличивается в присутствии маяк.