Ich versuche, alle verfügbaren Bluetooth-Geräte in einer Reihe zu finden. Aber ich bekomme nur ein Gerät, ich benutze es in Thread in Run-Methode. Ich habe bereits viele Links zu diesem Problem überprüft, konnte dieses Problem jedoch nicht beheben. Hier ist mein CodeWie finden Sie verfügbare Bluetooth-Geräte in Reichweite?
public void run() {
if(service != null) {
IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
filter.addAction(BluetoothAdapter.ACTION_DISCOVERY_FINISHED);
service.registerReceiver(this.bReceiver, filter);
bluetooth.startDiscovery();
}
}
class BluetoothReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
Set<BluetoothDevice> pairedDevices = bluetooth.getBondedDevices();
String action = intent.getAction();
if (pairedDevices.size() > 0) {
for (BluetoothDevice device : pairedDevices) {
int rssi = intent.getShortExtra(BluetoothDevice.EXTRA_RSSI,Short.MIN_VALUE);
Log.d(TAG, device.getName());
}
}
if(BluetoothDevice.ACTION_FOUND.equals(action)) {
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
String uuid = intent.getStringExtra(BluetoothDevice.EXTRA_UUID);
int rssi = intent.getShortExtra(BluetoothDevice.EXTRA_RSSI,Short.MIN_VALUE);
Log.d(TAG, device.getName());
}
}
}
Zusätzlich I RSSI-Wert jedes gefundene Gerät wollen, aber bitte die Syntax
Aber wenn Sie meinen Code zu sehen ... ist es wie bei Ihnen gleich. ..i sehe keinen Unterschied dann, warum mein Code nicht funktioniert –
Was genau funktioniert nicht in Ihrem Code? Wird onReceive (...) aufgerufen? –
Das Problem ist irgendwann die Anwendung wird hängt nach dem Erreichen in dieser Sendung Empfänger wissen nicht, warum und andere wichtige Problem ist, ich bekomme nur eine aktive Bluetooth-Gerät stattdessen möchte ich alle verfügbaren Bluetooth-Geräte ... –