Android O里的蓝牙那点事

发布时间:2017-5-23 17:52    发布者:eechina
关键词: Android O , 蓝牙
作者:蓝牙技术联盟亚太区技术项目经理  任凯

Google已于5月17日的开发者大会上正式宣布,Beta版Android O即日起对普通用户开放。和以往一样,Google已经3月份提早向开发者提供了下一代Android的预览版,Android O  Developer Preview。从Android开发者的Reference Guide 以及其开发者博客上发布的博文来看,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的版本命名固然有趣,也上的甜品也都是笔者的最爱,但是今天在这里写这篇文章可不是为了让大家科普各种甜品的名的,我们的今天的目的,还是为了大家了解Google I/O开发者大会上发布的Android O在蓝牙方面有哪些已确认的新特性。

从开发者预览版来看,目前有两个针对蓝牙的主要特性将会加入到Android O当中:

1.    针对蓝牙5的更新

蓝牙5在去年12月份对外正式发布,主要包括4倍的通信距离扩展,2倍的通信速率提高以及8倍的广播包数据容量扩展。在最新的Android开发者参考文档API: O当中,对以上三个特性都有触及。

a.    setPreferredPhy方法

void setPreferredPhy (int txPhy,
int rxPhy,
int phyOptions)


通过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;

因此,通过参数的不同组合,就可以实现长距离或者是高速率的特性:

 PHY_LE_1M_MASKPHY_LE_2M_MASKPHY_LE_CODED_MASK
PHY_OPTION_NO_PREFERRED兼容4.0/4.1/4.2高速率不适用
PHY_OPTION_S2不适用不适用长距离
PHY_OPTION_S8不适用不适用长距离(4倍)

但是在这里需要强调一点:长距离和高速率的特性是否支持,还取决于Android设备的硬件是否支持蓝牙5。

关于Android开发者预览版当中关于长距离和高速率的更多细节,可以参考:https://developer.android.com/re ... /BluetoothGatt.html

b.    8倍广播包帧长扩展

Android O 开发者对 ScanRecord.getBytes()  方法检索的数据长度做出了一些变化。在介绍这个变化之前,我们先首先脑补一下什么是ScanRecord。

在Android的低功耗蓝牙扫描过程中,Android设备可以发起低功耗蓝牙的扫描操作,在Android的“话语体系”中,这叫做:startScan(ScanCallback)。其中的ScanCallback是一个回调函数的入口地址,扫描操作的结果都可以通过ScanCallback返回到应用层。ScanRecord.getBytes()这个方法可以返回扫描结果的原始数据。

那么在Android O中,getBytes() 方法对于所接收的字节数不作任何假定。因此,应用不应受所返回的任何最小或最大字节数的影响。相反,应用应当计算所返回数组的长度。因此这一变更的意义就在于能够兼容蓝牙 5 的设备返回的数据长度。对于Beacon应用的开发者来说,无疑是一个福音。

同时蓝牙5在广播扩展方面还有一些其他的更新,例如:

void startAdvertisingSet (AdvertisingSetParameters parameters,
                AdvertiseData advertiseData,
                AdvertiseData scan Response,
                PeriodicAdvertisingParameters periodicParameters,
                AdvertiseData periodicData,
                int duration,
                int maxExtendedAdvertisingEvents,
                AdvertisingSetCallback callback)


从startAdvertisingSet的参数来看,已经支持了蓝牙5当中的periodical advertising和extended adversiting事件。关于Android O当中蓝牙5广播扩展的更多细节,可以参阅以下网址:https://developer.android.com/re ... thLeAdvertiser.html

2.    Audio

Android O开发者预览版中同時发布了追加支持以往只是 Sony 限定的 LDAC  编码技术。LDAC是Sony开发的一种能够通过蓝牙链路传输Hi-Res音频的编码技术,这种技术可以将蓝牙音频信号的传输吞吐量有一个显著的提高,最高可以达到990kbps。带来的变化则是在Android O支持LDAC之后,市面上支持LDAC的蓝牙耳机和蓝牙扬声器都可以与Android O代际的智能手机连接,获取高音质的音频体验。

LDAC目前在传输速率上有3个档位可供选择:
•    990kbps,音质优先模式
•    660kbps,普通模式
•    330kbps,连接优先模式

届时更新了Android O之后,大家不妨败一个LDAC耳机体验一下。

3.    可部署设备

目前的Android O还处于Beta 版本的状态,通过 Android Beta 版计划,您可以抢先试用 Android 预览版,并提出反馈意见。目前,Nexus系列和Pixel系列的部分设备(如下列表)支持Android O Beta版本。

•    Nexus 5X、Nexus 6P、Nexus Player
•    Pixel C、Pixel、Pixel XL

开发者们,行动起来吧!

本文地址:https://www.eechina.com/thread-364429-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

相关视频

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表