1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Fehler bei read() von InputStream (Bluetooth)

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Steini99, 08.02.2012.

  1. Steini99, 08.02.2012 #1
    Steini99

    Steini99 Threadstarter Gast

    Hallo,

    ich verwende eine Bluetooth-SPP-Verbindung, wobei die App bereits tadellos funktioniert hat (als Gegenstück diente das BlueNiceCom3 mit einem Mikrocontroller).
    Leider mussten wir auf das BlueNiceCom4 umsteigen, wodurch ich jetzt einen eigenartigen Fehler bekomme: Die Verbindung lässt sich weiterhin aufbauen, auch das Senden von Bytes funktioniert einwandfrei - wenn ich nun versuche, Bytes zu lesen, funktioniert das nur genau einmal; beim wiederholten Klick auf den Button hängt sich die App auf (ANR).
    Vom read()-Befehl werden jedoch keine Exceptions geworfen :confused:

    Diesen LogCat-Eintrag bekomme ich beim verbinden:

    E/BluetoothEventLoop.cpp(232): event_filter: Recieved signal org.bluez.Device:propertyChanged from /org/bluez/xxxx/hci0/dev_xx_xx_xx_xx_xx_xx
    (also mit der richtigen Adresse halt)

    Beim 2. read() hängt sich nun die App auf, in der LogCat steht dazu nur:

    ANR in com.<meineApp>
    Reason: keyDispatchingTimedOut

    Kann der Fehler mit diesem Modus-wechsel zusammenhängen..? Im Datenblatt steht dazu, dass das Bluetoothmodul beim Verbinden in einen reinen Datenübertragungsmodus wechselt..

    mfg
     
  2. snowman2, 10.02.2012 #2
    snowman2

    snowman2 Erfahrener Benutzer

    Beiträge:
    153
    Erhaltene Danke:
    18
    Registriert seit:
    07.12.2011
    Läuft das Lesen bei dir in einem eigenen Thread?
     
  3. Steini99, 10.02.2012 #3
    Steini99

    Steini99 Threadstarter Gast

    das lesen & schreiben läuft beides im selben Thread..
     
  4. frank_m, 10.02.2012 #4
    frank_m

    frank_m Ehrenmitglied

    Beiträge:
    20,742
    Erhaltene Danke:
    8,197
    Registriert seit:
    21.09.2010
    Phone:
    Samsung Galaxy S5 Duos (G900FD)
    Tablet:
    Samsung Galaxy Tab S 8.4
    Bist du sicher, dass die Verbindung noch über SPP und nicht über HID läuft?
     
  5. Steini99, 13.02.2012 #5
    Steini99

    Steini99 Threadstarter Gast

    das modul unterstützt lt. Datenblatt nur SPP, SDAP und GAP..
    die Verbindung baue ich auf mit:
    BTSocket = device.createRfcommSocketToServiceRecord(UUID);
    BTSocket.connect(); (also natürlich innerhalb der try&catch-blöcke)
     
  6. frank_m, 13.02.2012 #6
    frank_m

    frank_m Ehrenmitglied

    Beiträge:
    20,742
    Erhaltene Danke:
    8,197
    Registriert seit:
    21.09.2010
    Phone:
    Samsung Galaxy S5 Duos (G900FD)
    Tablet:
    Samsung Galaxy Tab S 8.4
    Und die UUID passt zum Service Record des Moduls? Benutzt du API Level 15? Da kannst du UUIDs in den Geräteeigenschaften abfragen. Vorher geht das leider nicht.
     
  7. Neeldarax, 13.02.2012 #7
    Neeldarax

    Neeldarax Erfahrener Benutzer

    Beiträge:
    170
    Erhaltene Danke:
    31
    Registriert seit:
    07.12.2010
    Hi Steini99,

    ich hab mein alten Code durchkrämpelt:

    Code:
    BroadcastReceiver mReceiver = new BroadcastReceiver() {
    			@Override
    			public void onReceive(Context context, Intent intent) {
    				BluetoothDevice deviceExtra = intent
    						.getParcelableExtra("android.bluetooth.device.extra.DEVICE");
    				Parcelable[] uuidExtra = intent
    						.getParcelableArrayExtra("android.bluetooth.device.extra.UUID");
    				// Parse the UUIDs and get the one you are interested in
    
    				Log.d("test", deviceExtra.getName());
    				Log.d("test", Arrays.toString(uuidExtra));
    			}
    		};
    
    		String action = "android.bleutooth.device.action.UUID";
    		IntentFilter filter = new IntentFilter(action);
    		registerReceiver(mReceiver, filter);
    Beim Pairen/Verbinden eines BT-Geräts solltest du alle GUIDs ausgegeben bekommen, die dein device unterstützt.

    Habs nicht mehr ausprobiert, glaub aber, dass der Schnipsel damals seine arbeit erfüllt hat.
    (API 8+)

    regards
     
  8. Mingkang, 26.01.2013 #8
    Mingkang

    Mingkang Neuer Benutzer

    Beiträge:
    1
    Erhaltene Danke:
    0
    Registriert seit:
    26.01.2013
    Hallo Leute,

    habe eben erst gerade diesen Thread gefunden.
    Ich habe exakt das selbe Problem wie Steini99 und bin gerade ziemlich am Frustrieren.
    Weiß jemand eine Lösung, ich brauche sie echt dringend!

    danke
     

Diese Seite empfehlen