微信蓝牙协议是什么,如何在我的APP中app 用户注册使用协议

微信蓝牙协议调试工具AirSyncDebugger说明文档 v2.0_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
微信蓝牙协议调试工具AirSyncDebugger说明文档 v2.0
上传于||暂无简介
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩22页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢微信蓝牙BLE接入调试指引
测试公众号篇
2&微信测试公众号
2.1&申请测试公众号
可以在http://mp./debug/cgi-bin/sandbox?t=sandbox/login申请到一个用于测试的公众号,这个帐号可以用于调试具用AirSync协议的蓝牙设备,简精协议好像调不了。
申请步骤:
打开网址,点击登陆后,出来二维码,用微信扫一下,在弹出的页面点确认登陆,然后网页会自动进入测试号界面
进入后,注意一下上图标红线的值,BLE固件里的DEVICE_TYPE的值要改成上面标红微信号的值,而appID和appsecret这两个值在获取access_token时会用到。
2.2&添加蓝牙产品
在测试号界面,找到“功能服务”-》“设备功能”,点开启,然后进行设置,进去后添加产品,然后参考下图填写,就红圈要注意,其他随便填。
添加完后,并不表示进入公众号后就可以去连蓝牙了,这只是将公众号配置成具有蓝牙功能,想要连接蓝牙设备,还得继续往下。另外,注意上图标红圈的那个值6563,它是产品ID(product_id),在授权时会用到。
另外,说明一下,这里提到的产品是什么意思,要是以为是一个设备就是一样产品,那就惨了,因为测试帐号的限额就5个产品。我的理解是,一个产品,是指具有相同接口功能的硬件,比如蓝牙手表,就一个产品,所有手表都是同一个产品,蓝牙手环也是一样产品,WIFI功能的设备,就另一个产品,是一样大种类,或者叫做功能类别。
刚创建的这个产品,只是个空壳,接下来使用“微信公众平台接口调试工具”
来向产品添加蓝牙设备。
2.3&添加蓝牙设备
打开,接口类型和接口列表按下图填写:
然后再一下appid和secret的值,appid是测试号界面的appID,secret是appsecret。填好后点一下“检查问题”,正常的话,会返回:
上面的请求地址,意思是,点击“检查问题”按钮时,实际执行的就是这个指令,你把这个地址拷到网页浏览,显示的信息就是返回结果。
access_token&叫访问令牌,它的有效期是2小时,它的作用是下面提到的指令都得带访问令牌,否则测试号后台是不会接受的。
获取到access_token后,我们就可以添加设备了。将接口类型选择为“硬件接入API接口调试”,接口列表选择为“设备授权”:
在body里填入下面信息:
&&&&&device_num&:&&1&,&
&&&&&device_list&:&[
&&&&&&&&&&&&&id&:&&device3&,&
&&&&&&&&&&&&&mac&:&&f4e6f41549f2&,&
&&&&&&&&&&&&&connect_protocol&:&&3&,&
&&&&&&&&&&&&&auth_key&:&&b0c0d0e0f&,&
&&&&&&&&&&&&&close_strategy&:&&1&,&
&&&&&&&&&&&&&conn_strategy&:&&1&,&
&&&&&&&&&&&&&crypt_method&:&&1&,&
&&&&&&&&&&&&&auth_ver&:&&1&,&
&&&&&&&&&&&&&manu_mac_pos&:&&-1&,&
&&&&&&&&&&&&&ser_mac_pos&:&&-2&
&&&&&op_type&:&&0&,&
&&&&&product_id&:&&6563&
正常返回如下:
我们来解读一下BODY的信息,BODY是一个json结构,即“变量”:“值”的格式构成,不清楚的可以查一下。
&&&&&device_num&:&&1&,&//表示device_list里有多少项,1表示1项,如果是2,list就得有两项。&
&&&&&device_list&:&[&//设备列表
&&&&&&&&&&&&&id&:&&device3&,&//这个值要与BLE固件里的DEVICE_ID一致,可以自定义,也可通过微信HTTP接口生成。
&&&&&&&&&&&&&mac&:&&f4e6f41549f2&,&//这个值是硬件篇提到的BLE设备的MAC地址,与广播数据里的MAC地址顺序一样,也和手机扫描到的MAC地址顺序一样。
&&&&&&&&&&&&&connect_protocol&:&&3&,&//3&表示BLE蓝牙协议
&&&&&&&&&&&&&auth_key&:&&b0c0d0e0f&,&//和BLE固件里的aes_key值一致。
&&&&&&&&&&&&&close_strategy&:&&1&,&//1:退出公众号页面时即断开连接
&&&&&&&&&&&&&conn_strategy&:&&1&,&//1:(第1bit&置位)在公众号对话页面,不停的尝
试连接设备
&&&&&&&&&&&&&crypt_method&:&&1&,&//1:AES&加密
&&&&&&&&&&&&&auth_ver&:&&1&,&//加密版本,0是不加密
&&&&&&&&&&&&&manu_mac_pos&:&&-1&,&//-1:MAC地址在尾部
&&&&&&&&&&&&&ser_mac_pos&:&&-2&&//-2:表示serial&number不包含mac&地址
&&&&&op_type&:&&0&,&//0&表示新增,1表示更改,第一次用0,之后用1
&&&&&product_id&:&&6563&&//对用添加的产品号,op_type&=&0时需要。
设备授权,不表示进入微信号后就会连接设备,只是表示在后面的配置里可以被引用。
对上面的“id”项,详细说明一下,id指的是device_id,是唯一的,不能重名,它有两种产生方式,一种是用户自己定义,如上的device3就是我自己取的,另一种是调用微信接口产生:
一般在这里只填access_token,会产生错误提示:
&&&&&base_resp&:&{
&&&&&&&&&errcode&:&100020,&
&&&&&&&&&errmsg&:&&account&quota&not&enough&
原因是deviceid的产生需要指定产品ID,表明它是基于哪个产品。解决方法是:在access_tokey里填写ACCESS_TOKEN&product_id=PRODUCT_ID,如下:
http的请求方式:
https://api./device/getqrcode?access_token=ue48NdvmlCrEcknhRP0FJwmeg0d0hOu9aB9Q9ZW0d6HB-RhM6O2ffnSxhzXvH8ClAgSJ1mYnHiQLRScXCH3tMfXv5X-Wlk5kYC6waMPCpyMIYKgAGAQGS&product_id=6563
正常返回结果:
会产生一个deviceid和一个二维码地址。这个二维码地址是对应该设备的,它与公众号二维码的不同是,它加入了设备信息,用户在扫描二维码后,可以绑定设备,而扫描公众号二维码,则不会要求绑定设备。
二维码地址可以通过这个网站http://cli.im/url来产生二维码图片。
另外,自己定义的device&id,可以通过下命令来产生二维码地址:
curl&https://api./device/create_qrcode?access_token=ACCESS_TOKEN&-d&&{\&device_num\&:\&1\&,&\&device_id_list\&:[\&device3\&]}&
上面的access_token和device3要换成自己的。
Curl命令一般在linux终端下使用比较方便,WINDOWS的自己查一下。
2.4&绑定设备
二维码图片产生后,在微信扫一扫,就会跳出绑定界面,已绑过的除外。
点击绑定后,微信就会将device3与用户的微号进行绑定,可以通调试接口工具,在“查询用户绑定的设备”中查到,
Openid是用户微信号,当用户微信关注设备后,可以在测试号界面里的用户列表上看到。
查询用户绑定的设备”也可通过下面命令查到:
https://api./device/get_bind_device?access_token=ACCESS_TOKEN&openid=微信号
这里的绑定,不是实际物理意义上的绑定,只是软件的配置,并没有形成实际的连接。在绑定后,进入公众号,公众号就才会根据它绑定的设备去扫描,当找到对应的设备后,才去连接。所以,如果没有配置好绑定信息,进入公众号后是不会去连接设备的。
另外,除了通过扫描设备二维码去绑定设备,还可以通过HTTP接口来绑定设备,这个可以参考下面2.6提到的强制绑定设备。
至此,绑定设备后就可以在公众号里连接BLE设备,完成第一阶段的握手,当然,数据的互发还得等第三方服务器建好后。
2.5&设备接入接口协议
可以看到,调试工具的每个接口都有对应的http请求方式,这些请求方式,在《设备接入接口协议V2.3.2》里有详细解释,可以在http://iot./wiki/new/index.html?page=6-1下载。
接入接口协议有涉及第三方服务器接口,也有微信本身接口,下面做一下简单导读。
打开文档后,翻到目录,前缀是“消息接口”的,是微信发给第三方服务器的,方式是向地址http://URL?signature=SIGNATURE×tamp=&nonce=NONCE发送一段格式如下的xml数据:
&ToUserName&&![CDATA[%s]]&&/ToUserName&
&FromUserName&&![CDATA[%s]]&&/FromUserName&
&CreateTime&%u&/CreateTime&
&MsgType&&![CDATA[%s]]&&/MsgType&
&DeviceType&&![CDATA[%s]]&&/DeviceType&
&DeviceID&&![CDATA[%s]]&&/DeviceID&
&Content&&![CDATA[%s]]&&/Content&
&SessionID&%lu&/SessionID&
&MsgID&%lu&/MsgID&
&OpenID&&![CDATA[%s]]&&/OpenID&
然后,第三服务器也会回应一段xml数据,格式如下:
&ToUserName&&![CDATA[%s]]&&/ToUserName&
&FromUserName&&![CDATA[%s]]&&/FromUserName&
&CreateTime&%u&/CreateTime&
&MsgType&&![CDATA[%s]]&&/MsgType&
&DeviceType&&![CDATA[%s]]&&/DeviceType&
&DeviceID&&![CDATA[%s]]&&/DeviceID&
&SessionID&%u&/SessionID&
&Content&&![CDATA[%s]]&&/Content&
在目录中,前缀为“API”的,是对微信进行操作的接口,比如配置微信,上面2.3、2.4提到的添加设备、查询绑定,以及通过微信往设备发数据等。API方式,是请求微信的API地址,如果附带有参数或数据,则发一段JSCON格式的数据,如获取设备二维码:
curl&https://api./device/create_qrcode?access_token=ATOKEN&-d
&{\&device_num\&:\&2\&,&\&device_id_list\&:[\&ID1\&,\&ID2\&]}&
2.6&API调试
调试公众号后台,常用到的几个API:
获取ACCESS_TOKEN:
https://api./cgi-bin/token?grant_type=client_credential&appid=appID&secret=appsecret
appID和appsecret可以在测试号界面找到。
ACCESS_TOKEN是其他API的访问令牌,有效期是2小时。
获取设备二维码:
curl&https://api./device/create_qrcode?access_token=ACCESS_TOKEN&-d&&{\&device_num\&:\&1\&,&\&device_id_list\&:[\&device1\&]}&
device1是用户自定义的设备ID。
授权设备:
curl&https://api./device/authorize_device?access_token=ACCESS_TOKEN&-d&'{&device_num&:&&1&,&device_list&:&[{&id&:&&device1&,&&mac&:&&f4e6f41549f2&,&&connect_protocol&:&&3&,&auth_key&:&&&,&&close_strategy&:&&1&,&connect_protocol&:&&3&,&conn_strategy&:&&1&,&crypt_method&:&&0&,&auth_ver&:&&0&,&manu_mac_pos&:&&-1&,&ser_mac_pos&:&&-2&}],&&op_type&:&&1&,&&product_id&:&&6563&}'
各项参数在2.3有提到。
查询用户绑定的设备:
https://api./device/get_bind_device?access_token=ACCESS_TOKEN&openid=OPEN_ID
OPEN_ID是用户的微信号。查询该微信号已绑定的设备。
强制绑定设备
Curl&https://api./device/compel_bind?access_token=ACCESS_TOKEN&-d&‘{&device_id&:&&device1&,&openid&:&&OPEN_ID&}’
device1是用户自定义的设备ID,OPEN_ID是用户微信号
强制解绑设备
Curl&https://api./device/compel_unbind?access_token=ACCESS_TOKEN&-d&‘{&device_id&:&&device1&,&openid&:&&OPEN_ID&}’
device1是用户自定义的设备ID,OPEN_ID是用户微信号
阅读排行榜几个基本要用的东西:
1、微信公众平台
可以在此申请微信公众号,获取微信测试号。
微信测试号拥有所有功能权限,如果你有正式的企业服务号,就不必用测试号了。
2、微信JS-SDK说明文档
到时候会引入一个JS文件,是用来调用微信提供的那些接口的
3、微信硬件平台说明文档
网址(新版):
网址(旧版):
新版和旧版唯一的区别是,新版没有JS硬件API的说明页(但可以在下载中心自己下载)
1、首先,自己到微信公众平台申请一个微信公众号,就选个人订阅号。
2、登录你的公众号,进入公众平台管理页,左边最下面有个“开发者工具”。
3、点“开发者工具”,进去后找到“公众平台测试帐号”,自己按照步骤申请开通一个。
4、进入测试号管理页面,就会得到:
原始ID:gh_xxxxxxxxxx (右上角显示的,这个是微信原始ID,不是微信号)
(坑:微信原始ID 和 微信帐号不是同一个,微信帐号在之后都不会用到,用到的是原始ID)
appID:wxxxxxxxxxxxx (appID)
appsecret:xxxxxxxxxxxxxx (密钥)
5、测试号管理页面,下面找到“JS接口安全域名”,要配置成你们自己的服务器域名,后面有些微信API会返回数据,它会去匹配这个域名,如果不是指定的域名,会报错。
6、继续往下看,下面有个“体验接口权限表”,在里面找到“设备功能”,开通它
7、开通设备功能后,点右边的“设置”,进入设备功能页面
8、自己”添加产品”,随便搞,连接类型勾选”蓝牙”即可(添加完成后,该产品有个产品编号,后面设备授权时有用)
======= 以上是公众平台的配置,下面开始写前端代码 ======
1、新建HTML,基本结构写好。
2、引入”“,这个JS
3、写方法:
&code class=&hljs d&&wx.config({
beta:true,
//坑:这个很重要,必须配置这个为true,才能调用微信的硬件API
debug: false,
//是否开启调试模式,会自动弹一些消息框显示微信返回的数据
appId: 这里填写appID,
//让后台返回appid
timestamp: 时间戳,
//让后台返回生成证书时用的时间戳
nonceStr: 随机字符串,
//让后台返回生成证书时用的随机串
signature: 证书,
//让后台返回已当前URL地址生成的证书
jsApiList: [
//需要调用的接口,都得在这里面写一遍
&openWXDeviceLib&,//初始化设备库(只支持蓝牙设备)
&closeWXDeviceLib&,//关闭设备库(只支持蓝牙设备)
&getWXDeviceInfos&,//获取设备信息(获取当前用户已绑定的蓝牙设备列表)
&sendDataToWXDevice&,//发送数据给设备
&startScanWXDevice&,//扫描设备(获取周围所有的设备列表,无论绑定还是未被绑定的设备都会扫描到)
&stopScanWXDevice&,//停止扫描设备
&connectWXDevice&,//连接设备
&disconnectWXDevice&,//断开设备连接
&getWXDeviceTicket&,//获取操作凭证
//下面是监听事件:
&onWXDeviceBindStateChange&,//微信客户端设备绑定状态被改变时触发此事件
&onWXDeviceStateChange&,//监听连接状态,可以监听连接中、连接上、连接断开
&onReceiveDataFromWXDevice&,//接收到来自设备的数据时触发
&onScanWXDeviceResult&,//扫描到某个设备时触发
&onWXDeviceBluetoothStateChange&,//手机蓝牙打开或关闭时触发
});&/code&上面这个方法,在进入页面时应该首先被调用,这是初始化微信JS-SDK
beta 这个参数需设为true,才能调用那些微信还没有正式开放的新接口
appID,timestamp,nonceStr,signature这几个由后台传递到前端。
生成证书的方法JS-SDK文档中有,此处暂时省略
4:继续写方法
&code class=&hljs javascript&&wx.ready(function(){
//初始化设备库 需填写参数 公众号的原始ID
wx.invoke('openWXDeviceLib', {'brandUserName':'gh_xxxxxxxxxx'}, function(res){
//自己把res输出来看一下吧,里面包括了是否初始化成功,当前手机的蓝牙状态等信息
//这里有个坑,当时研究了好久,跟论坛里的人讨论了半天,就是IOS下正常,
//安卓下,请带上这个参数:brandUserName:后面是你公众号的原始ID。不然会初始化失败
//正式的公众号,也有原始ID,是gh_开头的那个,进入公众号,自己找一下吧,有的
//测试号,就用测试号管理页面右上角的那个gh_开头的那一串数字
//手机蓝牙状态改变时触发 (这是监听事件的调用方法,注意,监听事件都没有参数)
wx.on('onWXDeviceBluetoothStateChange',function(res){
//把res输出来看吧
//设备绑定状态改变事件(解绑成功,绑定成功的瞬间,会触发)
wx.on('onWXDeviceBindStateChange',function(res){
//把res输出来看吧
//设备连接状态改变
wx.on('onWXDeviceStateChange',function(res){
//有3个状态:connecting连接中,connected已连接,unconnected未连接
//每当手机和设备之间的状态改变的瞬间,会触发一次
//接收到设备传来的数据
wx.on('onReceiveDataFromWXDevice',function(res){
//接收到的原始数据:JSON.stringify(res)
//自己去百度下载一个jbase64.js,可以对字符串进行base64编码解码
//这里就是用的jbase64.js对原始数据进行解码
var unicode= BASE64.decoder(res.base64Data);
var str = '';
for(var i = 0 , len =
unicode. i &++i){
str += String.fromCharCode(unicode[i]);
//解码后的数据:str
//坑:你们测试的时候,不要在这里用alert(),页面会卡死。自己把信息输出到页面中查看吧
//不要在这里alert出来
});&/code&
5、继续写方法:
&code class=&hljs javascript&&wx.error(function(res){
alert(&wx.error错误:&+JSON.stringify(res));
//如果初始化出错了会调用此方法,没什么特别要注意的
});&/code&6、扫描设备:
(我做的那个项目,是通过手机扫描附近的设备,得到设备的deviceid,然后进行绑定,不是用户扫描二维码进行绑定,所以这里介绍扫描设备的过程)
&code class=&hljs javascript&&//扫描前请先监听设备扫描事件
wx.on('onScanWXDeviceResult',function(res){
alert(&扫描到1个设备&);
//自己解析一下res,里面会有deviceid,扫描设备的目的就是为了得到这个
//然后就可以开始绑定了
//开始扫描
wx.invoke(&startScanWXDevice&,{&btVersion&:&ble&},function(res){});
//这里填的参数是ble,也可以填bc,bc是经典蓝牙,我们做的这个设备不支持经典蓝牙,所以直接填ble
//安卓系统不能同时支持bel和bc,这个后面详细说一下
//执行此方法后,就开始一直不停的扫描,扫描到了设备会触发上面的监听事件
//如果不想扫了,可以停止扫描
wx.invoke(&stopScanWXDevice&,{},function(res){});&/code&
7、绑定和解除绑定
&code class=&hljs r&&//用户绑定设备
//1、先获取操作凭证(type为1表示绑定,2表示解除绑定)
wx.invoke('getWXDeviceTicket',{&deviceId&:&填写设备的deviceID&,&type&:1},function(res){
if(res.err_msg !=&getWXDeviceTicket:ok&){
alert(&获取操作凭证失败,请重试&);
//2.将deviceID和操作凭证通过ajax传给后台 进行绑定
//后台应该是有当前用户的openId的,其实前端也可以获取到,但比较麻烦
//我们这边的做法是,后台在数据库里保存了用户的openId,每次要用直接从数据库拿
//就不用每次还去调微信的接口拿,太麻烦了
//...此处ajax代码略
//用户解除绑定
//与上面的方法基本相同,只有type参数不同
wx.invoke('getWXDeviceTicket',{&deviceId&:&填写设备的deviceID&,&type&:2},function(res){
if(res.err_msg !=&getWXDeviceTicket:ok&){
alert(&获取操作凭证失败,请重试&);
//2.将deviceID和操作凭证通过ajax传给后台 进行绑定
});&/code&
8、向设备发送数据
&code class=&hljs javascript&&wx.invoke('sendDataToWXDevice', {'deviceId':dev,&base64Data&:BASE64.encoder(str)}, function(res){
if(res.err_msg !=&sendDataToWXDevice:ok&){
alert(&数据已发送&);
alert(&数据发送失败&);
//发送的数据需要经过base64编码&/code&
以上是前端页面中,基本就这些代码
当用户绑定了设备后,微信会不停的尝试连接设备,所以其实不用程序员写代码去连接设备。
下面来说一下遇到的各种坑:(上面内容中提到的就不说了)
1、开发流程:
①、硬件厂商,他们只要得到了设备的mac地址,就可以开始授权了(好像只要有蓝牙板子,就有mac地址了)。
②、然后再开始生产设备
③、然后才卖给用户
④、用户关注公众号,扫描设备(如果用的二维码方式,那就是扫二维码。我们没有用二维码那种方式)
⑤、用户绑定设备
⑥、微信自动连接设备
⑦、连接上后,就可以收发数据了
2、关于授权:
我们用的授权新接口,即不需要厂商提供deviceid,由微信分配deviceid
然后是授权时的那些参数:
product_id:就是你之前“添加设备”后,就会得到那个编号
connect_protocol:连接协议
只能填3,或者只能填1.你别弄成:3|1,
下面写了,安卓设备不能同时支持ble和经典蓝牙
IOS一切正常,但是填成3|1,你就发现安卓的ble蓝牙调用“getWXDeviceInfos”(获取设备信息),获取不到!
如果用户的手机是经典蓝牙,你就写一个页面,搞个按钮叫“刷成经典蓝牙”,用户可以自己去更新设备属性(就是授权那个地方,不是可以更新设备属性吗,让你们后台工程师写个接口,用户可以自己去把connect_protocol刷成1)
3、连接设备很快很稳定,安卓连不上设备,显示“已连接0个设备”:
在微信硬件平台的文档里面的某个地方,有一句话,说安卓设备要先订阅个什么东西,订阅上了,这个时候再连接就OK,因为设备只发了一次Auth和Init包,如果错过这个时机,就错过了…就再也连不上了,除非设备断电重启。
但IOS估计是订阅那个什么东西非常快,不会过期,所以一下就连上了。
那句话具体在什么地方,我真的找不到了,微信太坑了。
而且目前我们也没有特别好的解决方法,如果之后有好的解决方法,我再来更新。
4、关于设备向手机发数据:
设备发的数据,里面有两个值,一个代表包括包头包尾的总长度,一个代表除去包头包尾的长度,必须与所发数据的实际情况相对应,HTML页面中才能接收到。否则不报错,但也接收不到。
5、继续补充中
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:11987次
排名:千里之外
原创:23篇
转载:15篇
评论:16条
(2)(1)(8)(8)(5)(2)(3)(2)(7)&&国之画&&&&&&
版权所有 京ICP备号-2
迷上了代码!微信硬件蓝牙开发教程之添加蓝牙设备(1) - 今日头条()
申请设备功能a. 登录公众平台,点击左边功能栏的“添加功能插件”,选择“设备功能”。b. 点击“开通”,阅读并同意《微信公众平台微信互联设备功能服务协议》,开通成功。c. 设备功能开通后,公众号即拥有服务器接口、 AirKiss、 AirSync 以及硬件 JSAPI 的使用权限,不需要另外申请。添加设备在开发前,第三方首先需要在公众平台添加设备。一个公众号允许添加多种品类/型号的设备,每种添加成功的设备都能获得微信硬件平台初始分配的 100 个设备授权配额。添加流程a. 进入“设备功能”,点击“添加设备”。b. 填写基本资料,如设备名称、描述、品类以及使用到的微信硬件平台能力等等。 在这里我选择的每个设备唯一的二维码,主要原因是便于测试,如果要投放市场,个人建议选择型号二维码 说明:这个案例是基于CPU卡的移动设备,所以我在这里截图是按照我们的产品选择的,读者可根据自己产品自行定义,但是一定要在连接类型上勾选蓝牙c. 完成添加,获得 100 个设备授权配额。 d. 刷新页面后,即可在设备列表页查看到添加的设备信息。产品名称下面有个产品的id号,读者一定要注意,后续会用到这个产品号码 现在我们已经添加产品成功了,下一节课就着重进入代码开发以及调试阶段了,微信蓝牙设备接入并读取和写入CPU卡信息,案例将采取java+微信jsapi+H5界面开发。
移动改变生活,物联增强体验
开发者的互联网创新加速引擎
技术社区媒体:最新的技术新闻,最快的技术咨询,最有趣的技术人分享交流平台。
产品人学习成长社群。
分享一些互联网的心得,也包括一些汽车的新闻
专注网络创新技术的先锋媒体和实践平台,涵盖SDN、NFV、CCN、软件定义安全、软件定义数据中心等相关领域,提供新闻资讯、技术交流、在线实验、行业分析、求职招聘、教育培训、方案咨询、创业融资等多元服务。
易车购物10万买豪车 新劲炫ASX等你询底价
(C) 2016 今日头条 违法和不良信息举报电话:010-公司名称:北京字节跳动科技有限公司

我要回帖

更多关于 微信蓝牙协议 的文章

 

随机推荐