Android O里的藍牙那點事
Google已于5月17日的開發(fā)者大會上正式宣布,Beta版Android O即日起對普通用戶開放。和以往一樣,Google已經(jīng)3月份提早向開發(fā)者提供了下一代Android的預(yù)覽版,Android O[1] Developer Preview。
本文引用地址:http://www.biyoush.com/article/201705/359567.htm從Android開發(fā)者的Reference Guide[2] 以及其開發(fā)者博客上發(fā)布的博文來看,Android O在藍牙5的支持上著墨頗多,“藍”小編覺得今天有必要為大家腦補一下Android O當中的藍牙那些事。
首先要向大家介紹一下Android版本是如何命名的。Google是按照英文字母表的順序為Android系統(tǒng)命名的,單個字母的版本代碼在正式發(fā)布之后會擴展為各種甜品的名字,比如從Android 4.3(Android也是從這個版本開始支持低功耗藍牙(Bluetooth low energy) 技術(shù))開始,依次為:
•Android 4.3,Jelly Bean,果凍豆
•Android 4.4,KitKat,奇巧巧克力
•Android 5.0,Lollipop,棒棒糖
•Android 6.0,Marshmallow,棉花糖
• Android 7.0,Nougat,牛軋?zhí)?/p>
•Android 8.0,O(有傳聞可能是奧利奧Oreo ...(^_^)...)
Android的版本命名固然有趣,以上的甜品也都是小編的最愛,但是小編今天在這里寫這篇文章可不是為了讓大家科普各種甜品的名的,我們的今天的目的,還是為了大家了解Google I/O開發(fā)者大會上發(fā)布的Android O在藍牙方面有哪些已確認的新特性。
從開發(fā)者預(yù)覽版來看,目前有兩個針對藍牙的主要特性將會加入到Android O當中:
1、針對藍牙5的更新
藍牙5在去年12月份對外正式發(fā)布,主要包括4倍的通信距離擴展,2倍的通信速率提高以及8倍的廣播包數(shù)據(jù)容量擴展。在最新的Android開發(fā)者參考文檔API:O當中,對以上三個特性都有觸及。
setPreferredPhy方法
通過setPreferredPhy方法,可以對Android設(shè)備的藍牙PHY層進行配置。藍牙5的物理層包括三種選項:1M PHY,2M PHY以及Coded PHY。
相對應(yīng)的,對于setPreferredPhy的參數(shù):txPhy和rxPhy,分別有如下定義:
PHY_LE_1M_MASK,支持藍牙5 ,1M PHY;
PHY_LE_2M_MASK,支持藍牙5 ,2M PHY;
PHY_LE_CODED_MASK.,支持藍牙5,Coded PHY;
對于phyOptions參數(shù)有如下定義:
PHY_OPTION_NO_PREFERRED;
PHY_OPTION_S2 ;
PHY_OPTION_S8;
因此,通過參數(shù)的不同組合,就可以實現(xiàn)長距離或者是高速率的特性:
但是在這里需要強調(diào)一點:長距離和高速率的特性是否支持,還取決于Android設(shè)備的硬件是否支持藍牙5。
關(guān)于Android開發(fā)者預(yù)覽版當中關(guān)于長距離和高速率的更多細節(jié),可以參考:https://developer.android.com/reference/android/bluetooth/BluetoothGatt....
8倍廣播包幀長擴展
Android O 開發(fā)者對 ScanRecord.getBytes() [3] 方法檢索的數(shù)據(jù)長度做出了一些變化。在介紹這個變化之前,我們先首先腦補一下什么是ScanRecord。
在Android的低功耗藍牙掃描過程中,Android設(shè)備可以發(fā)起低功耗藍牙的掃描操作,在Android的“話語體系”中,這叫做:startScan(ScanCallback)。其中的ScanCallback是一個回調(diào)函數(shù)的入口地址,掃描操作的結(jié)果都可以通過ScanCallback返回到應(yīng)用層。ScanRecord.getBytes()這個方法可以返回掃描結(jié)果的原始數(shù)據(jù)。
那么在Android O中,getBytes()方法對于所接收的字節(jié)數(shù)不作任何假定。因此,應(yīng)用不應(yīng)受所返回的任何最小或最大字節(jié)數(shù)的影響。相反,應(yīng)用應(yīng)當計算所返回數(shù)組的長度。因此這一變更的意義就在于能夠兼容藍牙 5 的設(shè)備返回的數(shù)據(jù)長度。對于Beacon應(yīng)用的開發(fā)者來說,無疑是一個福音。
同時藍牙5在廣播擴展方面還有一些其他的更新,例如:
從startAdvertisingSet的參數(shù)來看,已經(jīng)支持了藍牙5當中的periodical advertising和extended adversiting事件。
關(guān)于Android O當中藍牙5廣播擴展的更多細節(jié),可以參閱以下網(wǎng)址:https://developer.android.com/reference/android/bluetooth/le/BluetoothLe...
2、Audio
Android O開發(fā)者預(yù)覽版中同時發(fā)布了追加支持以往只是 Sony 限定的 LDAC[4] 編碼技術(shù)。LDAC是Sony開發(fā)的一種能夠通過藍牙鏈路傳輸Hi-Res音頻的編碼技術(shù),這種技術(shù)可以將藍牙音頻信號的傳輸吞吐量有一個顯著的提高,最高可以達到990kbps。帶來的變化則是在Android O支持LDAC之后,市面上支持LDAC的藍牙耳機和藍牙揚聲器都可以與Android O代際的智能手機連接,獲取高音質(zhì)的音頻體驗。
LDAC目前在傳輸速率上有3個檔位可供選擇:
•990kbps,音質(zhì)優(yōu)先模式
•660kbps,普通模式
•330kbps,連接優(yōu)先模式
屆時更新了Android O之后,大家不妨敗一個LDAC耳機體驗一下...(*_^)...。
3、可部署設(shè)備
目前的Android O還處于Beta[5]版本的狀態(tài),通過Android Beta 版計劃,您可以搶先試用 Android 預(yù)覽版,并提出反饋意見。目前,Nexus系列和Pixel系列的部分設(shè)備(如下列表)支持Android O Beta版本。
Nexus 5X、Nexus 6P、Nexus Player
Pixel C、Pixel、Pixel XL
評論