Re: [問題] 透過藍牙傳送資訊(導航,樂曲,來電控

看板AndroidDev作者 (amoumou)時間9年前 (2015/02/09 12:06), 9年前編輯推噓0(002)
留言2則, 1人參與, 最新討論串1/1
※ 引述《MrJerome (飄揚)》之銘言: : : (以下簡稱手機App為A端,我們的產品為B端且所有通訊皆透過藍牙): : : 1.A端同時以藍牙連接B端以及藍牙耳機(接聽電話用) : 藍芽可以[同時]連線多台設備? : 我印象中是不行 : 除非可以接受[分開連接] : ex:平常是連B設備, 但是一收到電話, 就斷開B連接, 改連耳機 : : 2.A端可以傳送來電資訊給B端,包含電話號碼,來電人,接聽狀態等資訊。 : 可以做到 : : 3.B端可以用按鈕來接聽電話。動作流程描述如下: : : 當A收到來電,B顯示來電資訊,在B上按下接聽按鈕, : : A接聽電話並透過藍牙耳機通話。 : : 換句話說就是要用B接電話,並且可以透過藍牙耳機通話。 : 這等同是要透過藍芽傳遞聲音, 並要能夠由手機端可以傳遞聲音至對方 : 這點我就不是很確定了 : 至少有兩個因素要克服 : 1. 藍芽如何傳遞聲音? (這應該可以辦到, 畢竟都有藍芽耳機了) : 2. 收到的聲音要如何透過電話傳遞給對方 (這點我就不清楚了) 感謝各位關心這個問題並回應提供方向,目前我已能將音樂資訊, 來電資訊從手機透過藍牙送出。真的很感謝各位的熱心! 來電資訊: 具體的做法是利用BluetoothChat這個範例來改,在MainActivity 加入PhoneStateListener來監聽電話狀態,當狀態改變時可以 知道IDLE,OFFHOOK,RINGING三種狀態以及電話號碼,當 RINGING的時候,我就透過BluetoothChatFragment當中的sendMessage() 將資訊送出。 音樂資訊: 同樣是在MainActivity中,我使用BroadcastReceiver接收廣播 以及IntentFilter來過濾各廠牌音樂APP的廣播。這樣在 在onReceive事件中便可得到artist, album, track,以及isplaying 的資訊並用sendMessage()送出。 我目前最大的問題是: 當我的APP從B端收到"接聽電話"指令的時候, 我的APP要如何讓系統接這個電話? 流程大概是這樣的: (我的APP已經在背景執行中,手機的藍牙連接了藍牙耳機以及B端) 1.有來電,手機跳到來電的畫面 2.來電資訊由我的APP透過藍牙發送出去給B端 3.B端顯示來電資訊並傳送"接聽電話"字串命令給APP 4.APP收到字串,使手機接聽電話(接通後是使用藍牙耳機來通話)。 卡在最後一步,目前我找不到方法可以讓我的APP直接下令接聽電話... 另外導航資訊的部分,我想我是沒時間自己將導航功能寫出, 因此朝向尋找現成的方案,希望能像音樂資訊那樣接收資料然後送出。 我預想是當Google導航(或其他導航軟體) 預報"前方300公尺請右轉"的資訊時, 我的APP也能收到這個訊息並將它傳送出去給B端。 但我找了幾天找不到Google地圖導航有提供Broadcast之類的訊息出來, 我利用maps, intent, broadcast, directions, turn by turn等關鍵字去搜尋 但是找不到需要的資訊,可能是我漏看或是方向錯誤,目前也持續在找... 在這方面有經驗的前輩若能不吝指教,我在這邊先行道謝了! -- Sent from my Android -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.66.200.253 ※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1423454775.A.A00.html ※ 編輯: amoumou (61.66.200.253), 02/09/2015 12:09:32

02/16 10:32, , 1F
導航訊息後來我用NotificationListener解決了,但是必須
02/16 10:32, 1F

02/16 10:32, , 2F
要4.3以上
02/16 10:32, 2F
文章代碼(AID): #1Ks38te0 (AndroidDev)