Android watch 藍(lán)牙通話應(yīng)用設(shè)計(jì)

概述

以下內(nèi)容基于android Q杨赤。

手表通話分藍(lán)牙通話、esim卡通話截汪。esim卡通話和手機(jī)通話一樣疾牲,通過(guò)modem和運(yùn)營(yíng)商基站通信。藍(lán)牙通話則是把手機(jī)上的通話信息和狀態(tài)同步到手表上挫鸽,然后把手表上的操作返回到手機(jī)上進(jìn)行實(shí)際處理说敏。

更新

android S 及之后鸥跟,Telecom 中的 BluetoothPhoneServiceImpl 中的相關(guān)功能實(shí)現(xiàn)移到了 Bluetooth app 中的 BluethoothInCallService 中丢郊。

設(shè)計(jì)結(jié)構(gòu)

藍(lán)牙通話和esim卡通話的主要區(qū)別盔沫,在于手表上的通話狀態(tài)來(lái)自藍(lán)牙而不是modem。如圖

藍(lán)牙通話基本邏輯

其具體細(xì)節(jié)如下:

Bluetooth和Telecom交互方式

可以看到手機(jī)端的交互是通過(guò)IBluetoothHeadsetPhone/IBluetoothHeadset交互枫匾,而手表端的Bluetooth app實(shí)現(xiàn)了ConnectionService架诞,通過(guò)IConnectionService/IConnectionServiceAdapter交互,其和普通sim卡通話時(shí)telecom和telephony通過(guò)ConnectionService交互的區(qū)別如下:

藍(lán)牙通話 vs sim卡通話

藍(lán)牙app實(shí)現(xiàn)了telecom/Connection用來(lái)和Telecom/Call交換數(shù)據(jù)干茉。

MO

要通話谴忧,首先要有一個(gè)PhoneAccount,藍(lán)牙通話也注冊(cè)了專門屬于它的PhoneAccount角虫,如下:

注冊(cè)藍(lán)牙通話PhoneAccount

這個(gè)PhoneAccount對(duì)應(yīng)的Component為HfpClientConnectionService沾谓,這樣Telecom可以區(qū)分它是藍(lán)牙通話還是sim卡通話。

手表端MO的基本流程如下:

手表MO

Dialer撥號(hào)到InCall界面顯示流程和sim卡通話一致戳鹅,不同的是手表端Telecom撥號(hào)請(qǐng)求是通過(guò)HfpClientConnectionService傳給藍(lán)牙Native再傳給手機(jī)藍(lán)牙均驶,再通過(guò)手機(jī)modem撥出去。概述為

手表端MO流程

手機(jī)端收到MO命令的流程為:

手機(jī)端接收MO請(qǐng)求

通話狀態(tài)更新

因?yàn)槭直矶说耐ㄔ挔顟B(tài)是從藍(lán)牙Native獲取的枫虏,那么它是怎么更新的呢妇穴?如下:

手機(jī)端通話狀態(tài)更新到手表

其中最重要的是手表端queryCallsStart()到queryCallsDone(),這個(gè)流程類似sim卡通話RIL向modem發(fā)送GET_CURRENT_CALLS請(qǐng)求隶债,如下:

手表端QUERY_CURRENT_CALLS

MT

手表端的來(lái)電狀態(tài)更新和普通Call狀態(tài)變更更新類似腾它,由手機(jī)端的telecom把信息傳給藍(lán)牙app,然后通過(guò)藍(lán)牙Native傳到手表死讹。如下:

手表端來(lái)電

藍(lán)牙app最后通過(guò)TelecomManager#addNewIncomingCall()通知手表端的Telecom來(lái)電瞒滴,而如果是手機(jī)端撥號(hào),則是通過(guò)TelecomManager#addNewUnknownCall()通知回俐。

當(dāng)手表端接聽(tīng)后逛腿,手機(jī)端的流程如下:

手機(jī)端收到手表端的接聽(tīng)命令

三方通話

手表三方通話實(shí)現(xiàn)的很簡(jiǎn)單,藍(lán)牙app從藍(lán)牙Native拿到了兩個(gè)不同Id的通話仅颇,創(chuàng)建兩個(gè)HfpClientConnection单默,然后傳給Telecom。如下:

手表端的三方通話

會(huì)議通話

手表的會(huì)議電話實(shí)現(xiàn)也很簡(jiǎn)單忘瓦,當(dāng)HfpClientConnectionService發(fā)現(xiàn)新更新的Connection是多方通話的參與者時(shí)構(gòu)建一個(gè)HfpClientConference搁廓,它實(shí)現(xiàn)telecom/Conference,然后把它發(fā)送給Telecom耕皮。如下:

手表端藍(lán)牙通話會(huì)議電話前后Call狀態(tài)變更

其具體實(shí)現(xiàn)如下:

手表端的會(huì)議電話

Conference/Connection傳到Telecom后境蜕,其實(shí)現(xiàn)和sim卡會(huì)議電話一樣。

總結(jié)

藍(lán)牙通話其實(shí)就是在手表端的Telecom交互從Telephony變成了Bluetooth凌停。

原創(chuàng)內(nèi)容歡迎轉(zhuǎn)載粱年,但請(qǐng)注明出處,謝謝罚拟!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末台诗,一起剝皮案震驚了整個(gè)濱河市完箩,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌拉队,老刑警劉巖弊知,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異粱快,居然都是意外死亡秩彤,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門事哭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)漫雷,“玉大人,你說(shuō)我怎么就攤上這事鳍咱∩浩矗” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵流炕,是天一觀的道長(zhǎng)澎现。 經(jīng)常有香客問(wèn)我,道長(zhǎng)每辟,這世上最難降的妖魔是什么剑辫? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮渠欺,結(jié)果婚禮上妹蔽,老公的妹妹穿的比我還像新娘。我一直安慰自己挠将,他們只是感情好胳岂,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著舔稀,像睡著了一般乳丰。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上内贮,一...
    開(kāi)封第一講書(shū)人閱讀 51,631評(píng)論 1 305
  • 那天产园,我揣著相機(jī)與錄音,去河邊找鬼夜郁。 笑死什燕,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的竞端。 我是一名探鬼主播屎即,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼事富!你這毒婦竟也來(lái)了技俐?” 一聲冷哼從身側(cè)響起埃撵,我...
    開(kāi)封第一講書(shū)人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎虽另,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體饺谬,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡捂刺,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了募寨。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片族展。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖拔鹰,靈堂內(nèi)的尸體忽然破棺而出仪缸,到底是詐尸還是另有隱情,我是刑警寧澤列肢,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布恰画,位于F島的核電站,受9級(jí)特大地震影響瓷马,放射性物質(zhì)發(fā)生泄漏拴还。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一欧聘、第九天 我趴在偏房一處隱蔽的房頂上張望片林。 院中可真熱鬧,春花似錦怀骤、人聲如沸费封。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)弓摘。三九已至,卻和暖如春痕届,著一層夾襖步出監(jiān)牢的瞬間衣盾,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工爷抓, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留势决,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓蓝撇,卻偏偏與公主長(zhǎng)得像果复,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子渤昌,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容