BroadcastReceiver onReceive() никогда не вызывался

#java #android #broadcastreceiver

#java #Android #broadcastreceiver

Вопрос:

Я пытаюсь обнаружить устройства Bluetooth поблизости. Я следил за учебными пособиями, но не могу понять, почему onReceive() метод никогда не вызывается. Несмотря startDiscovery() на успех, метод onReceive() никогда не вызывается. Я добавил соответствующие разрешения в манифест

 if(adapter.isDiscovering()) {
                adapter.cancelDiscovery();

                if (adapter.startDiscovery())
                    test.setText("Searching >>>");

                IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
                Receiver receiver = new Receiver();
                registerReceiver(receiver, filter);
            }
}
if(!adapter.isDiscovering()) {

                if (adapter.startDiscovery())
                    test.setText("Searching >>>");


                IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
                Receiver receiver = new Receiver();
                registerReceiver(receiver, filter);
            }
  
 
 private class Receiver extends BroadcastReceiver {
        public Receiver() {
        }
        @Override
        public void onReceive(Context context, Intent intent) {
            final String action = intent.getAction();

            if (BluetoothDevice.ACTION_FOUND.equals(action)) {
                BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
                devices = new ArrayList<BluetoothDevice> ();
                devices.add(device);

                listAdapter = new DeviceListAdapter(context,R.layout.activity_bluetooth_connection,devices);
                pairedDivices = (ListView) findViewById(R.id.pairedDevices);
                pairedDivices.setAdapter(listAdapter);
                if(devices.isEmpty())
                    test.setText("no devices");
            }
        }
    }
  

Комментарии:

1. Вы зарегистрировали получателя в своем манифесте?

2. да, у меня есть. все еще не работает

3. какая версия Android?

4. 8.1 (версия oreo)

5. Проверьте свой logcat на наличие ошибок. Не фильтруйте logcat, иначе вы можете что-то пропустить. Вы делаете это на реальном устройстве в эмуляторе?