BroadcastReceiver onReceive () никогда не вызывается - PullRequest
0 голосов
/ 14 апреля 2019

Я пытаюсь обнаружить устройства 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");
            }
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...