大家好,我是本期栏目编辑小友,现在为大家讲解关于Android O当中的蓝牙那些事问题。
谷歌在5月17日的开发者大会上正式宣布,从现在开始,安卓的Beta版将对普通用户开放。和过去一样,谷歌在3月份向开发者提供了下一代安卓的预览版,Android O[1]开发者预览版。
从安卓开发者的参考指南[2]以及其开发者发布的博文来看,安卓O对蓝牙5的支持非常多,“蓝色”边肖认为今天的安卓O有必要弥补蓝牙。
首先我想告诉大家安卓版本是怎么命名的。谷歌按照英文字母的顺序给安卓系统命名。正式发布后,单字母版本代码会扩展到各种甜品的名称,比如来自安卓4.3(安卓也从这个版本开始支持蓝牙低能耗技术),顺序如下:
安卓4.3,果冻豆,果冻豆
安卓4.4,奇巧,奇巧巧克力
安卓5.0,棒棒糖,棒棒糖
安卓6.0,棉花糖,棉花糖
安卓7.0,牛轧糖,牛轧糖
安卓8.0,o(有传言说可能是奥利奥奥利奥.(^_^) .)
从开发者预览来看,目前有两个主要的蓝牙功能将被添加到安卓操作系统中:
一个
蓝牙5的更新
蓝牙5在去年12月正式发布,主要包括4倍的通信距离扩展、2倍的通信速度提升和8倍的广播包数据容量扩展。在最新的安卓开发者参考API:O中,上述三个特性都有所触及。
SetPreferredPhy方法
安卓设备的蓝牙PHY层可以通过setPreferredPhy方法进行配置。蓝牙5的物理层包括三个选项:1M PHY、2M PHY和编码PHY。
相应地,set referredphy:tx phy和rxPhy的参数定义如下:
PHY_LE_1M_MASK,支持蓝牙5、1M PHY;
PHY_LE_2M_MASK,支持蓝牙5,2M PHY;
PHY编码面具。支持蓝牙5,编码PHY;
phyOptions参数有以下定义:
PHY _选项_否_首选;
PHY _选项_ S2;
PHY _选项_ S8
因此,长距离或高速的特性可以通过不同的参数组合来实现:
但这里需要强调的是,是否支持长距离、高速的功能,取决于安卓设备的硬件是否支持蓝牙5。
安卓开发者预览中关于长距离高速的更多详情,请参考: 3359 developer.android.com/reference/Android/Bluetooth/Bluetooth gatt.html。
;"> 8倍广播包帧长扩展Android O 开发者对ScanRecord.getBytes() [3]方法检索的数据长度做出了一些变化。在介绍这个变化之前,我们先首先脑补一下什么是ScanRecord。
在Android的低功耗蓝牙扫描过程中,Android设备可以发起低功耗蓝牙的扫描操作,在Android的“话语体系”中,这叫做:startScan(ScanCallback)。其中的ScanCallback是一个回调函数的入口地址,扫描操作的结果都可以通过ScanCallback返回到应用层。ScanRecord.getBytes()这个方法可以返回扫描结果的原始数据。
那么在Android O中,getBytes()方法对于所接收的字节数不作任何假定。因此,应用不应受所返回的任何最小或最大字节数的影响。相反,应用应当计算所返回数组的长度。因此这一变更的意义就在于能够兼容蓝牙 5 的设备返回的数据长度。对于Beacon应用的开发者来说,无疑是一个福音。
同时蓝牙5在广播扩展方面还有一些其他的更新,例如:
从startAdvertisingSet的参数来看,已经支持了蓝牙5当中的periodical advertising和extended adversiting事件。
关于Android O当中蓝牙5广播扩展的更多细节,可以参阅以下网址:https://developer.android.com/reference/android/bluetooth/le/BluetoothLeAdvertiser.html
2
Audio
Android O开发者预览版中同時发布了追加支持以往只是 Sony 限定的 LDAC[4] 编码技术。LDAC是Sony开发的一种能够通过蓝牙链路传输Hi-Res音频的编码技术,这种技术可以将蓝牙音频信号的传输吞吐量有一个显著的提高,最高可以达到990kbps。带来的变化则是在Android O支持LDAC之后,市面上支持LDAC的蓝牙耳机和蓝牙扬声器都可以与Android O代际的智能手机连接,获取高音质的音频体验。
LDAC目前在传输速率上有3个档位可供选择:
990kbps,音质优先模式
660kbps,普通模式
330kbps,连接优先模式
届时更新了Android O之后,大家不妨败一个LDAC耳机体验一下...(*_^)...。
3
可部署设备
目前的Android O还处于Beta[5]版本的状态,通过Android Beta 版计划,您可以抢先试用 Android 预览版,并提出反馈意见。目前,Nexus系列和Pixel系列的部分设备(如下列表)支持Android O Beta版本。
Nexus 5X、Nexus 6P、Nexus Player
Pixel C、Pixel、Pixel XL
Google已于5月17日的开发者大会上正式宣布,Beta版AndroidO即日起对普通用户开放。和以往一样,Google已经3月份提早向开发者提供了下一代Android的预览版,Android O[1]Developer Preview。
从Android开发者的Reference Guide[2]以及其开发者博客上发布的博文来看,Android O在蓝牙5的支持上着墨颇多,“蓝”小编觉得今天有必要为大家脑补一下Android O当中的蓝牙那些事。
首先要向大家介绍一下Android版本是如何命名的。Google是按照英文字母表的顺序为Android系统命名的,单个字母的版本代码在正式发布之后会扩展为各种甜品的名字,比如从Android 4.3(Android也是从这个版本开始支持低功耗蓝牙(Bluetooth low energy) 技术)开始,依次为:
Android 4.3,Jelly Bean,果冻豆
Android 4.4,KitKat,奇巧巧克力
Android 5.0,Lollipop,棒棒糖
Android 6.0,Marshmallow,棉花糖
Android 7.0,Nougat,牛轧糖
Android 8.0,O(有传闻可能是奥利奥Oreo ...(^_^)...)
从开发者预览版来看,目前有两个针对蓝牙的主要特性将会加入到Android O当中:
1
针对蓝牙5的更新
蓝牙5在去年12月份对外正式发布,主要包括4倍的通信距离扩展,2倍的通信速率提高以及8倍的广播包数据容量扩展。在最新的Android开发者参考文档API:O当中,对以上三个特性都有触及。
setPreferredPhy方法
通过setPreferredPhy方法,可以对Android设备的蓝牙PHY层进行配置。蓝牙5的物理层包括三种选项:1M PHY,2M PHY以及Coded PHY。
相对应的,对于setPreferredPhy的参数:txPhy和rxPhy,分别有如下定义:
PHY_LE_1M_MASK,支持蓝牙5 ,1M PHY;
PHY_LE_2M_MASK,支持蓝牙5 ,2M PHY;
PHY_LE_CODED_MASK.,支持蓝牙5,Coded PHY;
对于phyOptions参数有如下定义:
PHY_OPTION_NO_PREFERRED;
PHY_OPTION_S2;
PHY_OPTION_S8;
因此,通过参数的不同组合,就可以实现长距离或者是高速率的特性:
但是在这里需要强调一点:长距离和高速率的特性是否支持,还取决于Android设备的硬件是否支持蓝牙5。
关于Android开发者预览版当中关于长距离和高速率的更多细节,可以参考: https://developer.android.com/reference/android/bluetooth/BluetoothGatt.html
8倍广播包帧长扩展
Android O 开发者对ScanRecord.getBytes() [3]方法检索的数据长度做出了一些变化。在介绍这个变化之前,我们先首先脑补一下什么是ScanRecord。
在Android的低功耗蓝牙扫描过程中,Android设备可以发起低功耗蓝牙的扫描操作,在Android的“话语体系”中,这叫做:startScan(ScanCallback)。其中的ScanCallback是一个回调函数的入口地址,扫描操作的结果都可以通过ScanCallback返回到应用层。ScanRecord.getBytes()这个方法可以返回扫描结果的原始数据。
那么在Android O中,getBytes()方法对于所接收的字节数不作任何假定。因此,应用不应受所返回的任何最小或最大字节数的影响。相反,应用应当计算所返回数组的长度。因此这一变更的意义就在于能够兼容蓝牙 5 的设备返回的数据长度。对于Beacon应用的开发者来说,无疑是一个福音。
同时蓝牙5在广播扩展方面还有一些其他的更新,例如:
从startAdvertisingSet的参数来看,已经支持了蓝牙5当中的periodical advertising和extended adversiting事件。
关于Android O当中蓝牙5广播扩展的更多细节,可以参阅以下网址:https://developer.android.com/reference/android/bluetooth/le/BluetoothLeAdvertiser.html
2
Audio
Android O开发者预览版中同時发布了追加支持以往只是 Sony 限定的 LDAC[4] 编码技术。LDAC是Sony开发的一种能够通过蓝牙链路传输Hi-Res音频的编码技术,这种技术可以将蓝牙音频信号的传输吞吐量有一个显著的提高,最高可以达到990kbps。带来的变化则是在Android O支持LDAC之后,市面上支持LDAC的蓝牙耳机和蓝牙扬声器都可以与Android O代际的智能手机连接,获取高音质的音频体验。
LDAC目前在传输速率上有3个档位可供选择:
990kbps,音质优先模式
660kbps,普通模式
330kbps,连接优先模式
届时更新了Android O之后,大家不妨败一个LDAC耳机体验一下...(*_^)...。
3
可部署设备
目前的Android O还处于Beta[5]版本的状态,通过Android Beta 版计划,您可以抢先试用 Android 预览版,并提出反馈意见。目前,Nexus系列和Pixel系列的部分设备(如下列表)支持Android O Beta版本。
Nexus 5X、Nexus 6P、Nexus Player
Pixel C、Pixel、Pixel XL
.dfma { position: relative; width: 1000px; margin: 0 auto; } .dfma a::after { position: absolute; left: 0; bottom: 0; width: 30px; line-height: 1.4; text-align: center; background-color: rgba(0, 0, 0, .5); color: #fff; font-size: 12px; content: "广告"; } .dfma img { display: block; }