Ich arbeite an einer Anwendung, wo ich den Anruf von einem Gerät zu einem anderen über Bluetooth-Protokoll übertragen muss (d. h. ich möchte, dass das Gerät den Anruf an die Freisprecheinrichtung überträgt). Irgendwelche Ideen?
Im Allgemeinen können Sie nicht. Android Bluetooth-Stack implementiert mehrere Bluetooth-Profile einschließlich HFP und A2DP . Android ist eine Audioquelle für beide Profile und es überträgt Audio an das verbundene Headset. Das Headset sollte die Funktion Hands-Free Unit ( HF ) und Android - Audio Gateway ( AG ) implementieren, wie auf Bluetooth.org .
Nun möchten Sie HF-Funktionalität auf Android-Geräten, die von Entwurf unterstützt AG. Sie müssten das HFP-Profil (HF-Seite) für das Gerät implementieren, das tatsächlich als Headset fungieren soll. Sehen Sie sich das Profilmodell an. HFP basiert auf RFCOMM (unterstützt von Android API) und SDP (das in API nicht vorhanden ist). Sie können auf einige Teile von BlueDroid (Ändern von SDP usw.), die sich auf der Stapelebene befinden, nicht zugreifen . Daher kann Ihr Mobiltelefon nicht so tun, als wäre es ein Headset mit HF-Funktionalität.
Natürlich können Sie alles über RFCOMM senden (was meines Wissens nach asynchron ist), aber dafür gibt es keine direkte Unterstützung von der Android Bluetooth API. Die Implementierung mit RFCOMM würde SCO-Link (SCO-Socket) erfordern und es könnte auch in versteckt sein Android OS Stack-Layer (konnte den Weg zum Erstellen eines solchen Sockets über API nicht finden).
Tags und Links android bluetooth phone-call