Jetzt kostenlos registrieren. Mitglieder surfen ohne Werbung auf Android-Hilfe.de!
Zurück   Android-Hilfe.de > Android Developer > Android App Entwicklung

Fehler bei read() von InputStream (Bluetooth)

Das Thema "Fehler bei read() von InputStream (Bluetooth)" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.


Antwort

 

Themen-Optionen Ansicht
Alt 08.02.2012, 14:45   #1 (permalink)
Neuer Benutzer

Modell: Sony Ericsson Xperia Arc

Registriert seit: 02.09.2011
Beiträge: 6
Abgegebene Danke: 1
Erhielt 0 Danke für 0 Beiträge
Standard Fehler bei read() von InputStream (Bluetooth)

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

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
Steini99 ist offline   Mit Zitat antworten
Alt 10.02.2012, 12:06   #2 (permalink)
Android-Hilfe.de Mitglied
 
Benutzerbild von snowman2

Registriert seit: 07.12.2011
Beiträge: 128
Abgegebene Danke: 15
Erhielt 14 Danke für 14 Beiträge
Standard AW: Fehler bei read() von InputStream (Bluetooth)

Läuft das Lesen bei dir in einem eigenen Thread?
snowman2 ist offline   Mit Zitat antworten
Alt 10.02.2012, 23:45   #3 (permalink)
Neuer Benutzer

Modell: Sony Ericsson Xperia Arc

Registriert seit: 02.09.2011
Beiträge: 6
Abgegebene Danke: 1
Erhielt 0 Danke für 0 Beiträge
Standard AW: Fehler bei read() von InputStream (Bluetooth)

das lesen & schreiben läuft beides im selben Thread..
Steini99 ist offline   Mit Zitat antworten
Alt 10.02.2012, 23:52   #4 (permalink)
Moderator
 
Benutzerbild von frank_m

Modell: Galaxy Note, Galaxy S, Galaxy Tab 7.7

Registriert seit: 21.09.2010
Beiträge: 7.738
Abgegebene Danke: 155
Erhielt 2.544 Danke für 1.566 Beiträge
Standard AW: Fehler bei read() von InputStream (Bluetooth)

Bist du sicher, dass die Verbindung noch über SPP und nicht über HID läuft?
__________________
Ich trinke gern einen Kaffee:
Spende
500 MB Dropbox Speicher zusätzlich für Neuanmeldungen: DropBox Anmeldung

Kein technischer Support per PN! Benutzt das Forum. Für administrative Dinge könnt ihr mich aber jederzeit auch per PN ansprechen.
Forumregeln - wichtige Funktionen - Galaxy Note FAQ
frank_m ist offline   Mit Zitat antworten
Alt 13.02.2012, 09:01   #5 (permalink)
Neuer Benutzer

Modell: Sony Ericsson Xperia Arc

Registriert seit: 02.09.2011
Beiträge: 6
Abgegebene Danke: 1
Erhielt 0 Danke für 0 Beiträge
Standard AW: Fehler bei read() von InputStream (Bluetooth)

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)
Steini99 ist offline   Mit Zitat antworten
Alt 13.02.2012, 13:48   #6 (permalink)
Moderator
 
Benutzerbild von frank_m

Modell: Galaxy Note, Galaxy S, Galaxy Tab 7.7

Registriert seit: 21.09.2010
Beiträge: 7.738
Abgegebene Danke: 155
Erhielt 2.544 Danke für 1.566 Beiträge
Standard AW: Fehler bei read() von InputStream (Bluetooth)

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.
__________________
Ich trinke gern einen Kaffee:
Spende
500 MB Dropbox Speicher zusätzlich für Neuanmeldungen: DropBox Anmeldung

Kein technischer Support per PN! Benutzt das Forum. Für administrative Dinge könnt ihr mich aber jederzeit auch per PN ansprechen.
Forumregeln - wichtige Funktionen - Galaxy Note FAQ
frank_m ist offline   Mit Zitat antworten
Alt 13.02.2012, 15:12   #7 (permalink)
Android-Hilfe.de Mitglied

Modell: Motorola Atrix 4G

Registriert seit: 07.12.2010
Beiträge: 170
Abgegebene Danke: 14
Erhielt 32 Danke für 31 Beiträge
Neeldarax eine Nachricht über ICQ schicken
Standard AW: Fehler bei read() von InputStream (Bluetooth)

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
__________________
g o o g l e+ plus.neeldarax.de
androidblog www.neeldarax.de
Neeldarax ist offline   Mit Zitat antworten
Antwort

Stichworte
-

Themen-Optionen
Ansicht


Ähnliche Themen

Thema Autor Forum Antworten Letzter Beitrag
Fehler von ICQ bei Ebuddy Radde Sonstige Apps & Widgets 0 09.08.2011 17:50
Bluetooth Kopplung mit KFZ - Fehler bei Telefonbuchzugriff schoeppchen HTC Desire Forum 4 18.07.2011 22:57
App stürzt bei Zugriff auf client.inputStream immer ab faabi Android App Entwicklung 2 02.05.2011 13:38
Bluetooth - Fehler bei der automatischen Modem-Installation maenne Samsung Galaxy S (I9000) Forum 7 22.02.2011 22:01
ext3 von Read only zu writable? ex0ps Root / Hacking / Modding für HTC Magic 0 25.11.2010 15:52




Du liest gerade: "Fehler bei read() von InputStream (Bluetooth)" unter "Android App Entwicklung" auf Android-Hilfe.de.


Powered by vBulletin®
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
© Android-Hilfe.de 2012 - All rights reserved.