Android BLE CALLBACK_TYPE_ALL_MATCHES не работает

Я пытаюсь получить несколько возвратов с устройств BLE на Android.

Я получаю только один ответ.

Раньше это работало на старых устройствах.

Мои устройства работают под управлением 5.0.2.

Вот мой код:

    @TargetApi(Build.VERSION_CODES.M)
private void api21Scan(UUID[] uuids) {

    List<ScanFilter> scanFilters = new ArrayList<ScanFilter>();

    if (uuids != null) {
        for (int i = 0; i < uuids.length; ++i)
            scanFilters.add(new ScanFilter.Builder().setServiceUuid(ParcelUuid.fromString(uuids[i].toString())).build());
    }

    ScanSettings settings = new ScanSettings.Builder().setCallbackType(ScanSettings.CALLBACK_TYPE_ALL_MATCHES).build();
    ScanCallback scanCallback = new ScanCallback() {
        @Override
        public void onScanResult(int callbackType, ScanResult result)
        {
            mLeScanCallback.onLeScan(result.getDevice(), result.getRssi(), result.getScanRecord().getBytes());
        }

        @Override
        public void onBatchScanResults(List<ScanResult> results)
        {
            for (ScanResult sr : results)
            {
                mLeScanCallback.onLeScan(sr.getDevice(), sr.getRssi(), sr.getScanRecord().getBytes());
            }
        }
    };

    if (uuids != null)
        mBluetoothAdapter.getBluetoothLeScanner().startScan(scanFilters, settings, scanCallback);
    else
        mBluetoothAdapter.getBluetoothLeScanner().startScan(null, settings, scanCallback);
}

В LogCat, пока мое приложение сканирует, я вижу постоянный вывод строк из TAG: bt-btm, где текст говорит: новый адрес: XX: XX: XX: XX: XX: XX, где я снова и снова вижу свое устройство.

Почему эти сканы не попадают в мое приложение?

У меня также есть устаревший код, который использует устаревший адаптер bluetooth startLeScan и также возвращает только первое сканирование устройства.


person user856232    schedule 14.06.2016    source источник
comment
Может быть, вы могли бы проверить это stackoverflow.com/questions/29731176/.   -  person aleksamarkoni    schedule 30.06.2016
comment
Таким образом, основная проблема заключается в том, что мы снова видим фрагментацию со стороны производителей Android-устройств. Отлично... Спасибо, что указали мне на этот пост. Я думаю, в конце концов, мы, разработчики, должны обойти различия между производителями.   -  person user856232    schedule 30.06.2016