Я пытаюсь обнаружить устройства 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");
}
}
}