Bluetooth Broadcastreceiver Problem

  • 4 Antworten
  • Letztes Antwortdatum
S

Slawa

Neues Mitglied
0
Hallo Leute.

Ich habe folgendes Problem.

Ich programmiere zurzeit eine Bluetooth App und bin am Broadcastreceiver hängengeblieben.Ich möchte die gefunden Geräte zur meiner Liste hinzufügen, aber wenn ich auf Suchen in meiner App drücke tut er mir doppelt das gefunden Gerät auflisten, wenn ich nochmal suchen drücke,tut er nochmal das gleiche Gerät hinzufügen.

Hier mein Quellcode:
Code:
	public void broadCastReceiver(){		
		 		final BroadcastReceiver mReceiver = new BroadcastReceiver() {			
			@Override
			public void onReceive(Context context, Intent intent) {
				String action = intent.getAction();				
					
					if (BluetoothDevice.ACTION_FOUND.equals(action)) {			        	            
					BluetoothDevice newDevice = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);					
					if (newDevice.getBondState() != BluetoothDevice.BOND_BONDED) {
	                listadapter.add(newDevice.getName() + "|" + newDevice.getAddress());   
	                listadapter.notifyDataSetChanged();
					}		  
				}			
				}
		};			IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
					registerReceiver(mReceiver, filter);
					IntentFilter filter2 = new IntentFilter(BluetoothAdapter.ACTION_DISCOVERY_FINISHED);
					registerReceiver(mReceiver, filter2);
		}

Ich bitte um hilfe. Ich habe schon in so viele Forums geschrieben,aber niemand konnte mir eine richtige Antwort geben.:sad:

Danke Voraus.
 
Dann solltest du entweder sicherstellen, dass du die Liste nach dem Buttonklick entweder komplett leerst oder in die Liste nur die Geräte hinzufügst, die noch nicht vorhanden sind. So fügst du immer die Geräte stur hinzu, egal ob schon vorhanden oder nicht. (außer ich habe jetzt was übersehen)
 
Also bevor du ListAdapter.add aufrufst, überprüfe ob nicht schon das selbe Geräte im listview exisitiert. Zu dem thema findest du sicherlich genug im www.... Einfach mal suchen und inspirieren lassen

Sent from my GT-I9100 using Android-Hilfe.de App
 
Ja klar ich weis das man das überprüfen muss, aber ich muss ja das neue Gerät mit dem Inhal meiner Liste vergleichen mit welcher Methode kann ich den Inhalt auslesen?Die Zeilen in der ListView sind ja einfach nur strings also Name und Adresse.Kann mir jemand bitte helfen? Ich wäre sehr dankbar.
 
Wenn das Problem noch besteht, dann versuch mal das:

ArrayList<Object> mDeviceObject = new ArrayList<Object>();



if (mDeviceObject.contains(newDevice) == false)
{
// dein code!!!
}
 
Zurück
Oben Unten