2013-03-27 23 views
9

Pracuję nad aplikacją, w której muszę przekazywać połączenia z jednego urządzenia do drugiego za pośrednictwem protokołu Bluetooth (tj. Chcę, aby urządzenie przenosiło połączenie na zestaw głośnomówiący). Jakieś pomysły?Transfer połączenia z jednego urządzenia do drugiego przez Bluetooth

+1

Nie ma czegoś takiego jak "przekazywanie połączenia" w tym kontekście. Przeniesienie połączenia oznacza przeniesienie go z jednego telefonu na inny (przez co oryginalny telefon nie jest już częścią połączenia). Próbujesz tylko aktywować zewnętrzny głośnik/mikrofon. Android robi to automatycznie, jeśli wykryte wcześniej urządzenie zostanie wykryte w zasięgu podczas połączenia. – mah

+0

@mah, więc gdy oba urządzenia są sparowane, powiedzmy, że urządzenie "a" to komputer, a urządzenie "b" to telefon, jeśli są już sparowane i otrzymuję połączenie telefoniczne, komputer może działać jak samochód -głośnik? – Elior

+0

@Elior, jeśli twój PC gra rolę głośnika bluetooth tak jak niektóre samochody tak, ale to zależy od tego, jakie funkcje PC udostępnia do urządzeń zdalnych (i choć jest to możliwe, nie jest to coś, o czym słyszałem wcześniej ... zwykle działa w odwrotnym kierunku - PC oddaje dźwięk do zdalnego głośnika bluetooth/zestawu słuchawkowego). – mah

Odpowiedz

4

Zasadniczo nie można. Stos Androida Bluetooth implementuje kilka profili Bluetooth, w tym HFP i A2DP. Android jest źródłem audio dla obu profili i przesyła dźwięk do podłączonego zestawu słuchawkowego. Zestaw słuchawkowy powinien obsługiwać zestaw głośnomówiący (HF) oraz Android - Audio Gateway (AG) - zgodnie z opisem na Bluetooth.org.

Teraz chcesz funkcjonalność HF na urządzeniach z systemem Android, która z założenia obsługuje AG. Będziesz musiał zaimplementować profil HFP (strona HF) dla urządzenia, które w rzeczywistości ma działać jako zestaw słuchawkowy. Spójrz na profile model. HFP oparty jest na RFCOMM (obsługiwanym przez Android API) i SDP (który nie jest obecny w API). Nie będzie można uzyskać dostępu do niektórych części z BlueDroid (modyfikując SDP itp.), Które znajdują się na warstwie stosu. Dlatego Twój telefon komórkowy nie może udawać, że jest zestawem słuchawkowym z funkcjami HF.

Oczywiście możesz wysłać wszystko przez RFCOMM (co jest asynchroniczne, o ile wiem), ale nie ma bezpośredniej pomocy interfejsu API Bluetooth Android. Implementacja z RFCOMM wymagałaby SCO link (gniazdo SCO) i może być ukryta w warstwie stosu systemu Android (nie można znaleźć sposobu na utworzenie takiego gniazda przez API).

Powiązane problemy