Что такое LeScanCallback эквивалентно BluetoothAdapter.ACTION_DISCOVERY_FINISHED

Я пишу приложение, которое ищет несколько устройств BLE и добавляет их в Array of Strings. после того, как обнаружение заканчивается, оно запускает активность фрагмента и заполняет слои свайпа для каждого из них, чтобы управлять устройствами.

С модулем Bluetooth HC-05 я использовал BluetoothAdapter.ACTION_DISCOVERY_FINISHED, чтобы поймать, когда обнаружение закончено, как показано ниже

 if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)) {
            bluetoothAdapter.cancelDiscovery();
            snackBluetooth.dismiss();
            doNotifyDataSetChangedOnce = true;
            if(listSize>0){
                logo.setVisibility(View.GONE);
                //intro1.setVisibility(View.GONE);
                //intro2.setVisibility(View.GONE);
                numberOfPages = listSize;
                SharedPreferences sharedData = context.getSharedPreferences(storedData,0);
                SharedPreferences.Editor editor = sharedData.edit();
                editor.putInt("NO_Fixtures", numberOfPages);
                editor.commit();
                setupPages();
            }

для LeScanCallback устройства обнаруживаются, но я не могу найти способ вызвать setupPages только после того, как этот callBack() остановится.

public void onLeScan(final BluetoothDevice device, int rssi, byte[] scanRecord) {
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {

                        String ss = device.getName();
                        if(ss!= null && ss.equals("MLT-BT05")) {
                            if(!Arrays.asList(bAddress).contains(device.getAddress())){
                                Toast.makeText(MainActivity.this, "Found a new Device", Toast.LENGTH_SHORT).show();
                                mLeDeviceListAdapter.addDevice(device);
                                mLeDeviceListAdapter.notifyDataSetChanged();
                                bName[Bindex] = device.getName();
                                bAddress[Bindex] = device.getAddress();
                                numOfDevices++;

                                addDevice(Bindex,numOfDevices,bName[Bindex],bAddress[Bindex]);
                                Bindex++;

                            }

                        }
                        if (ss!= null && ss.equals("LEDVANCE G50 F-6681")){
                            if(!Arrays.asList(bAddress).contains(device.getAddress())){
                                Toast.makeText(MainActivity.this, "Found a Second new Device", Toast.LENGTH_SHORT).show();
                                mLeDeviceListAdapter.addDevice(device);
                                mLeDeviceListAdapter.notifyDataSetChanged();
                                bName[Bindex] = device.getName();
                                bAddress[Bindex] = device.getAddress();
                                numOfDevices++;

                                addDevice(Bindex,numOfDevices,bName[Bindex],bAddress[Bindex]);
                                Bindex++;


                            }
                        }

                    }

                });

            }

0 ответов

Другие вопросы по тегам