I am working with an application that is looking for nearby Bluetooth. I use the following codes: it works in 5.0, it returns Bluetooth devices nearby, but when I test in 6.0.1 BluetoothDevice.ACTION_FOUND not called, only BluetoothAdapter.ACTION_DISCOVERY_STARTED and BluetoothAdapter.ACTION_DISCOVERY_FINISHED called.
@Override protected void onCreate(Bundle savedInstanceState) { BluetoothManager bluetoothManager = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE); bluetoothAdapter = bluetoothManager.getAdapter(); Intent discoverableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE); discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION,0); startActivity(discoverableIntent); } private final BroadcastReceiver bReciever = new BroadcastReceiver() { public void onReceive(Context context, Intent intent) { String action = intent.getAction(); System.out.println(action); if (BluetoothDevice.ACTION_FOUND.equals(action)) { BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); System.out.println(device); } } }; public void onSearch(View v){ if (bluetoothAdapter.isDiscovering()) { bluetoothAdapter.cancelDiscovery(); } System.out.println(bluetoothAdapter.startDiscovery()); IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction(BluetoothDevice.ACTION_FOUND); intentFilter.addAction(BluetoothAdapter.ACTION_DISCOVERY_STARTED); intentFilter.addAction(BluetoothAdapter.ACTION_DISCOVERY_FINISHED); registerReceiver(bReciever, intentFilter); }
My question is: Why BluetoothDevice.ACTION_FOUND was not called in 6.0.1? Thanks.
source share