㈠ 谷歌把蓝牙协议栈开源了吗
你好,谷歌把蓝牙协议栈开源了吗?是的。Android 4.2之前,Google一直使用的是Linux官方蓝牙协议栈,即知名老牌开源项目BlueZ。BlueZ实际上是由高通公司在2001年5月基于GPL协议发布的一个开源项目,该项目仅发布一个月后就被Linux之父Linux Torvalds纳入了Linux内核,并做为Linux 2.4.6内核的官方蓝牙协议栈。随着Android设备的流行,BlueZ也得到了极大的完善和扩展。例如Android 4.1中BlueZ的版本升级为4.93,它支持蓝牙核心规范4.0,并实现了绝大部分的Profiles。BlueZ现在正处于其巅峰时期,但好景不长。从Android 4.2即Jelly Bean开始,Google便在Android源码中推出了它和博通公司一起开发的BlueDroid以替代BlueZ。虽然因为时间及成熟度的原因,大部分手机厂商在Android 4.2中仍继续使用BlueZ。但据笔者了解,BlueZ的创始者,高通公司也将在基于其芯片的Android参考设计中去除BlueZ,并仅支持BlueDroid。BlueZ的未来如何笔者姑且不论。不过,能让高通改弦易辙,BlueDroid自有其合理之处。相比BlueZ,BlueDroid最值得称道的地方就是其框架结构变得更为简洁和清晰。请参考!
㈡ Eddystone 和 iBeacon 到底有什么区别
Eddystone和iBeacon都是蓝牙信标发送信息的一种协议,iBeacon是苹果推出的,只能在苹果的设备上用,其实你可以写一个支持ibeacon协议的app在安卓上用,但是估计苹果公司不同意,Eddystone是google推出的,而且是开源的开放的。
蓝牙信标(就是一个能发送无线信号的蓝牙设备)使用iBeacon协议只能发送其UUID,可以类比的理解为网卡的物理地址,然后由对应的专用的app来接收信号,解析uuid,提供一些服务,通过uuid可以知道用户在什么地方等等,如是在北京的肯德基还是上海哪里的肯德基。而使用eddystone可不仅可以发送设备的uuid,还可以发送url,就是一个网址,因为有了url那么我们就不需要专门的app了,一个通用的接收蓝牙信标信息的app就足够了,然后通过url来直接访问人家给你提供好的内容。
其实蓝牙信标就是一个引导的功能,就像海上的灯塔为船指引方向,这是一个单向的通信方式,而不是交互的。
㈢ Eddystone 和 iBeacon 到底有什么区别
1. 通用唯一识别码 (Universally Unique Identifier,UUID)
UUID是一个128位的标志,用于将全世界的所有信标区分开来。比如星巴克在店内设置了信标,那么星巴克app可以选择只接受来自自家信标的消息,通过信标的唯一识别码星巴克app也可以判断出用户处于全球的哪一家分店,并推送相应的信息,如优惠券、连接WiFi等等。
iBeacon发送的正是UUID,但它只能发送这种信息。Eddystone所支持的其他框架更有用的多。UUID的缺点在于它总是和app绑定的,也就是说每一个信标需要对应的app才能发挥作用。为了解决这个问题,Eddystone支持另一种框架。
2. URL链接
URL链接显然比UUID应用更广泛也更简单,任何一个手机上都有浏览器,它们都可以打开URL。虽然星巴克粉丝们不介意一直在手机中保留星巴克官方app,但一位站在冷饮售货机前的顾客显然不太想为了买一杯饮料安装一个app。在这种一次性传输中,URL无疑是最佳选择。
URL可以被理解成信标的二维码版本。但它相较二维码的优势在于不需要专门的二维码识别软件,也不需要顾客对着二维码拍照。有了蓝牙信标,不是顾客找链接而是链接主动找顾客。在餐馆里安放一个信标就不需要贴一百万个二维码了。
谷歌曾经有一个名为The Physical Web的项目,主要工鞥就是用蓝牙信标发送URL。它和iBeacon的问题是相同的,都是只支持一种模式。Eddystone比二者都更灵活。
3. 临时标识(Ephemeral Identifiers,EDI)
EID是一种安全框架,它是一种只允许被授权用户读取信息的信标。比如在公司中,大厅里安放了对全部顾客、访客广播的信标,然而公司也有只想对雇员广播的信息,他们显然不希望这些信息被顾客和访客看到。谷歌没有对这种框架做很多描述,只表示“这些信标会经常更新,只有授权的用户可以解码它们的信息”。谷歌还透露这种框架将被用于在几场找自己的行李和找自己丢失的钥匙等场景。信标技术可以告诉用户二者之间的距离。
4. 遥测数据
这种框架对需要掌控大量信标的企业很有用。鉴于信标大多数使用电池供电,在一段时间后就需要更换电池或充电。遥测数据框架允许信标将自身的状态和电量信息发送给周围的IT工作人员,这样员工们可以有针对性的进行维护和更换。
信标生态系统
建立信标生态系统离不开制造商的支持,谷歌已经拉拢了几家制造商使用Eddystone。Radius Networks是最先看到跨平台信标重要性的公司之一,他们使用了“iBeacon for Android”库文件,后来激怒了苹果。
Radius Networks联合创始人兼CEO Marc Wallace表示:“Eddystone和其它信标技术最大的不同在于他们兼容多种框架协议,具有更广泛的用途。”Wallace还表示开发者们不需要为每一种协议单独置办一个信标,Radius Networks的设备将同时支持iBeacon、Eddystone和AltBeacon。AltBeacon是Radius Networks公司自主开发的信标标准。实际上现有信标设备只需要进行一下软件升级就可以支持Eddystone,毕竟它只是一个蓝牙软件协议罢了。遗憾的是一个信标设备不能同时运行iBeacon和Eddystone。
谷歌致力于研究信标标准的同时,把信标硬件、管理软件等其他方面留给了合作公司。简单的信标设备售价只有10美元,你甚至可以下载一个app来把自己的手机变成一个信标设备。
谷歌生态系统中的Eddystone支持
硬件和通讯标准的确非常好,但如果没有优秀的软件来利用它们的话也无法发挥出真正的威力。谷歌将会引领Eddystone app的开发和支持。
谷歌地图在今年早些时候已经在波兰地区使用了基于信标的技术来进行实时导航和提醒,目前这个科技巨头正在考虑扩展此服务。这些提醒会直接出现在谷歌地图app上。它们并不是那种异常刺耳的震动的信息提醒,而是颇为安静的类似天气信息的提醒。它会悄悄出现在你的手机屏幕上,如果你不感兴趣可以解散它。苹果的信标提醒也是被动式的,在锁定屏幕的左下方出现。
谷歌表示Google Now很快就可以利用信标的信息来更新提醒卡片了,比如走进餐厅时提供餐馆菜单等等。这个功能Google Now通过GPS可以做到,但会消耗大量电量而且也不支持室内使用,况且在商铺密集的区域精确度并不高。想象一条不宽敞的街道两边的公交站点,GPS很可能无法区分你在哪一个站,但信标的精确度就可以做到。
在API方面,谷歌将会推出名为“Proximity Beacon”的新云端API。将允许应用程序在云端注册信标和配套数据。在客户端方面,Eddystone将由谷歌Nearby API提供支持,在安卓手机的Google Play服务中心就包含了Nearby API,所以任何运行Android 2.3或以上版本的手机都可以接受谷歌的信标消息。对iOS平台来说,谷歌也有Nearby API 库可以使用。
谷歌已经开发了许多物联网项目,来看一下主要清单吧:
Eddystone - 一款开源信标格式,主要为公共场合向人们发送各种信息设计。利用蓝牙LE(Low Energy)技术,点对点通讯。
Weave - 主要为家用物联网设计的通讯协议,注重安全性和私密性。利用蓝牙LE、WiFi链接和云通讯。
Thread - 基于IP的无线通讯协议。和蓝牙LE、ZigBee、Z-Wave同为直接通讯协议。
Brillo - 即将推出的基于安卓的物联网操作系统。这款轻量级操作系统将运行在智能门锁、灯泡和其他智能家居上。根据我们对Brillo有限的了解,它似乎也可以运行在信标上。