Pracuję z aplikacją, która przeszukuje pobliską bluetooth. Używam następujących kodów, działa w wersji 5.0, ale zwraca urządzenia Bluetooth w pobliżu, ale kiedy testuję w wersji 6.0.1 BluetoothDevice.ACTION_FOUND
nie jest wywoływany, tylko BluetoothAdapter.ACTION_DISCOVERY_STARTED
i BluetoothAdapter.ACTION_DISCOVERY_FINISHED
są wywoływane.Wyszukiwanie Bluetooth W pobliżu w wersji 6.0.1
@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);
}
Moje pytanie Dlaczego funkcja BluetoothDevice.ACTION_FOUND nie została wywołana w wersji 6.0.1? Dziękuję Ci.
Czy znalazłeś przyczynę. Mam ten sam numer – Anu