Verbinden mit gekoppelten bluetooth-Gerät von Xamarin auf Android

Müssen wir unsere Anwendung in der Lage sein, um eine Verbindung zu einem gekoppelten bluetooth-Gerät automatisch, wenn eine Anwendung gestartet wird über A2DP oder Hands Free Profile.

Arbeiten wir in Xamarin (monodroid), für die Android-Plattform.

Ich habe festgestellt, das stackoverflow-Frage: Programmatisch verbinden mit gekoppelten Bluetooth-Gerät

Aber es bezieht sich auf native Weise, dies zu erreichen (siehe Antwort von kcoppock). Ich würde gerne wissen, ob es einen Weg gibt, dies zu erreichen über Xamarin. Wir können die Verbindung zu dem SPP-Endpunkt, da es eine RFCOMM-Verbindung, aber wir brauchen das, und die audio-Verbindung, so dass wir loking für ein Weg, um eine Verbindung zu A2DP.

Update 1:

Wir haben versucht, die Verbindung mit CreateInsecureRfcommSocketToServiceRecord Methode wie diese:


mmSocket = device.CreateInsecureRfcommSocketToServiceRecord(0000110A-0000-1000-8000-00805F9B34FB);
mmSocket.Connect();

Auf einen Anruf zu Verbinden, bekommen wir eine Fehlermeldung:

read failed, socket might closed or timeout, read ret: -1

Stack-trace beginnt mit:

Java.IO.IOException at Android.Runtime.JNIEnv.CallVoidMethod (IntPtr jobject, IntPtr jmethod) [0x00062] in /Users/buil…

Update 2:

Durch die Art und Weise, whene wir versuchen, eine Verbindung über die native java-test-app mit der Ansatz von kcoppock, die Verbindung code scheint zu funktionieren ohne Fehler, obwohl das Gerät nicht angeschlossen ist, wie ein A2DP headset.

Die einzige Programmierung, wie wir gesehen haben, um in der Lage sein, es zu tun war diese Google-Play-app, die beweist, dass es möglich ist.

  • Einer der Gründe könnte sein, dass ein anderer Teil des Programms ist die Abhaltung öffnen Sie die gleiche Datei, die die Verbindung(Extraktor) war eigentlich ablesen ?
  • An der Stelle der Verbindung, die wir haben nur eine SPP-Verbindung über RFComm, denke ich, aber unsere wichtigste Aufgabe ist, dass wir das Android-Gerät mit SSP und A2DP gleichzeitig. Wenn wir eine Verbindung zum SPP von code und eine Verbindung zu A2DP manuell über die Android-Einstellungen, alles funktioniert, so dass dies beweist, dass wir technisch können zwei profile gleichzeitig angeschlossen.
  • Dies könnte ein Bandbreiten-Problem. Überprüfen Sie die baudrate, die auf Ihre spezifischen Gerät und wie viel Sie für das streaming in audio. Natürlich, wenn Sie kommen nah an der Grenze der rfcomm-Kanal schlägt fehl.
Schreibe einen Kommentar