微信蓝牙外设协议 1

协议支持经典蓝牙和4.0 BLE 蓝牙,目前支持 ios 和 andriod 两个系统,后续会扩展到其他系统。

PS:在 IOS 上比较稳定,在 Andriod 尚不稳定,因为 Andriod 手机的蓝牙芯片都不同,所以有些手机的蓝牙在执行某个命令的时候耗时太久,所以就连接不上,不稳定。而

IOS 手机使用的都是同一款蓝牙芯片,所以很稳定。

一、 整体架构

厂商服务器和外设,由厂商开发完成。微信会提供服务器的接口以对接厂商的服务器,会提供手机的接口(如本文规定的蓝牙协议)以对接厂商的外设。

二、 主要功能

1. 该协议打通了设备和厂商服务器之间的数据链路,也就是支持将设备上的数据发送到厂商的服务器上,也支持将厂商的数据发送到设备。

2. 厂商的数据对于微信来说,是黑盒,微信不对设备数据做分析。

3. 该协议也打通了设备和微信服务器之间的数据链路。

4. 设备和微信服务器之间的数据格式由微信规定,例如登录,新消息通知等。

三、 蓝牙BLE 模拟成流

微信规定了蓝牙BLE 设备需要先模拟成流(即stream,输入输出流)。经典蓝牙的RFCOMM,就是一个流。流具有的特性有:

a. 可以传输无限长度的数据

b. 双工,读写可以并发,互不干扰。

显然,蓝牙BLE 无法传输无限长度的数据,为了实现这个目的,需要定义一个规范 ----- 那就是“帧”

以上内容都属于烂大街的东西了,没有什么有用的具体的东西,只是对微信蓝牙外设做个大致的介绍,我从去年听到这个东西,知道今年 7 月份才开始正式接触,刚开始很难上手,代码也比较复杂,学起来比较困难。但是总的来说这就是一个 BLE 设备和手机 APK 之间的连接和数据交换,跟我以前做的 BLE 设备与京东 APK 对接本质是一样的。但是还有不一样的地方,那就是微信要用到的 MAC 和 MD5,微信毕竟和其他简单的 APK 有区别,有加密数据和不加密数据,现在大多都在用不加密模式,微信只是做一个接口,把数据从
BLE 设备最终传到厂商服务器,如果使用加密模式的话,微信会对数据有个处理的过程,有些厂商是不同意的。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-18 08:43:59

微信蓝牙外设协议 1的相关文章

Protocol buffer序列化及其在微信蓝牙协议中的应用

Protocol buffer是Google出品的一种轻便高效的结构化数据存储格式,可对结构化数据进行序列化,并具有语言无关.平台无关等特点,在通信协议和数据存储等领域已经得到广泛的应用.目前其已经提供 C/C++.Java.Python 等语言的 API. 一.Protocol buffer和XML 在数据通信传输时,一般需要将结构化的数据序列化成流进行传送,接收方再反序列化为原始格式数据进行处理.在Web通信领域,XML应用算是最通用的了.在时间性能上,虽然XML的序列化开销还可以,但是反序

[蓝牙] 2、蓝牙BLE协议及架构浅析&&基于广播超时待机说广播事件

第一章 BLE基本概念了解 一.蓝牙4.0和BLE区别 蓝牙4.0是一种应用非常广泛.基于2.4G射频的低功耗无线通讯技术.蓝牙低功耗(Bluetooth Low Energy ),人们又常称之为BlueTooth Smart,是由SIG( the Bluetooth Special Interest Group) 在2010年6月起草,在原有标准的蓝牙4.0核心协议上添加的一种低功耗技术. 蓝牙低功耗不等同于蓝牙4.0,只是蓝牙4.0的一个分支.蓝牙4.0是蓝牙3.0+ HS(高速蓝牙)规范的

微信蓝牙开发板体验和开发指引

一.     嵌入式企鹅圈微信蓝牙开发板竞猜活动和开发板资源 1. 之前參与微信公众号(嵌入式企鹅圈)有奖竞猜活动已经结束.嵌入式企鹅圈微信蓝牙开发板已经发出给前15名猜中嵌入式企鹅圈主人的童鞋们. 2.开发板百度资源路径 请增加微信公众号(嵌入式企鹅圈).发送515获取百度网盘资源. 下面指引引用的路径的根文件夹即是网盘资源根文件夹. 嵌入式企鹅圈微信蓝牙开发板基于TI CC2541蓝牙单芯片.没有开发板的伙伴们也能够获取开发资源,源代码project全然适用于以TI CC2541 蓝牙单芯片

微信蓝牙协议栈移植

微信蓝牙一般是基于串口的,所以只跟串口底层相关,也就是只需要将串口发送和接收两个函数填充到协议栈对外接口函数就行了. 先把微信SDK包加载在我们自己的项目中,整个移植过程我们只需要改动proto.c文件里边5个接口函数. 1.先把串口准备好 #include "uart.h" #include "uart_config.h" enum BLE_TRAN_FSM { bMagicNumber = 0, bVer, nLenghth_hi, nLenghth_low,

iOS之 PJSIP蓝牙外设音频支持

如题,蓝牙设备作为音频输出,在app中如果包含VoIP那么就要设定当连接蓝牙设备时候是否选择或者支持蓝牙输出 最近在处理一个工单就是公司的voip-app与硬件话机底座联调(蓝牙2.0)坑爹的如果是4.0完全没有问题就搞定它 但是现在是2.0至于为何不做4.0肯定是考虑成本吗,据说每台话机可以节省2-300软妹币 言归正传我们sip库用的是pjsip大部分app都是用的pjsip易于编译是一点,用起来简单,而且有人维护这个也是用它的 原因之一. 看过我之前那几篇文章的大概知道pjsip的编译使用

蓝牙HID协议笔记【转】

蓝牙HID协议笔记 转自:http://blog.sina.com.cn/s/blog_69b5d2a50101emll.html 1.概述 The Human Interface Device (HID)定义了蓝牙在人机接口设备中的协议.特征和使用规程.典型的应用包括蓝牙鼠标.蓝牙键盘.蓝牙游戏手柄等.该协议改编自USB HID Protocol. 2.一些概念 (1)HID Reports:Bluetooth HID devices支持三种Report:Input, Output, and

微信蓝牙BLE接入调试指引 第三方服务器篇

微信蓝牙BLE接入调试指引 第三方服务器篇 3 构建第三方服务器 服务器的功能主要是接收微信发过来的绑定.解绑.菜单等事件,以及微信发过来的文本.设备发过来的数据等. 3.1 编译服务程序 QQ提供了服务程序的DEMO,下载地址如下: Nordic nRF51822接入服务器端源代码 http://iot.weixin.qq.com/wiki/doc/blue/BlueDemoServer.zip 下载编译工具: Download Java 1.7 64位 http://www.cr173.co

android 蓝牙SPP协议通信

准备 1.蓝牙串行端口基于SPP协议(Serial Port Profile),能在蓝牙设备之间创建串口进行数据传输 2.SPP的UUID:00001101-0000-1000-8000-00805F9B34FB 3.Android手机一般以客户端的角色主动连接SPP协议设备 连接流程 1.检测蓝牙状态 若蓝牙未打开,则打开蓝牙~ bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); @Override protected void o

微信IPAD/MAC协议

之前一直从事群控云控相关的开发,偶然间接触到了微信协议.从此踏上了协议研究之路 也将微信的协议封装成了底层框架,可以供更多的人去进行二次开发. https://github.com/changtuiqie/Mac.WeChat 这个框架支持 微信扫码登录.聊天.发送朋友圈.阅读公众号等功能. 原文地址:http://blog.51cto.com/12584465/2333605