Sto lavorando a un'applicazione in cui è necessario trasferire la chiamata da un dispositivo a un altro tramite il protocollo Bluetooth (vale a dire il modo in cui il dispositivo trasferisce la chiamata a mani libere). Qualche idea?Trasferimento di chiamata da un dispositivo a un altro tramite Bluetooth
risposta
In genere non è possibile. Lo stack Bluetooth di Android implementa diversi profili Bluetooth tra cui HFP e A2DP. Android è una fonte audio per entrambi i profili e trasmette l'audio alle cuffie collegate. L'auricolare deve implementare la funzionalità Hands-Free Unit (HF) e Android - Gateway audio (AG) - come descritto in Bluetooth.org.
Ora si desidera la funzionalità HF su dispositivi Android, che in base alla progettazione supporta AG. È necessario implementare il profilo HFP (lato HF) per il dispositivo, che in realtà si desidera agire come un auricolare. Dai uno sguardo allo profile model. HFP è basato su RFCOMM (supportato da API Android) e SDP (che non è presente nell'API). Non sarà possibile accedere ad alcune parti da BlueDroid (modificando SDP ecc.) Che si trovano sullo stack layer. Pertanto il tuo telefono cellulare non può fingere di essere cuffia con funzionalità HF.
Ovviamente è possibile inviare tutto su RFCOMM (che è asincrono per quanto ne so) ma per questo non esiste un supporto diretto da Android Bluetooth API. L'implementazione con RFCOMM richiederebbe SCO link (socket SCO) e potrebbe anche essere nascosta nel livello dello stack del sistema operativo Android (non è stato possibile trovare il modo di creare tale socket tramite API).
Non esiste una cosa come "trasferire la chiamata" in questo contesto. Trasferire una chiamata significa spostarlo da un telefono a un altro telefono (in cui il telefono originale non fa più parte della chiamata). Stai provando ad attivare solo un altoparlante/microfono esterno. Android lo fa già automaticamente se si scopre che il dispositivo precedentemente associato si trova nel raggio d'azione durante una chiamata. – mah
@mah quindi quando entrambi i dispositivi sono accoppiati, diciamo che il dispositivo "a" è un pc, e il dispositivo "b" è un telefono, se sono già accoppiati e ricevo una chiamata sul mio telefono, il pc può comportarsi come una macchina locutore? – Elior
@Elior se il tuo PC ha il ruolo di un altoparlante bluetooth come fanno alcune macchine allora sì, ma dipende da quali funzioni il pc espone ai dispositivi remoti (e anche se è possibile, non è qualcosa che ho sentito di aver fatto prima ... di solito funziona nella direzione opposta - pc che espone l'audio a un altoparlante/auricolare bluetooth remoto). – mah