微信蓝牙设备开发教程之获取蓝牙设备deviceid和设备二维码(2)

已推出最新微信硬件jsapi学习笔记 地址 http://www.vxzsk.com/282.html

要想获取设备的deviceid和设备的二维码,必须满足1个条件,设备所属的产品号码product_id,产品的id在添加设备列表中查询,@V型知识库原创如下图:
微信蓝牙设备开发教程之获取蓝牙设备deviceid和设备二维码(2)
文章图片


红色圈箭头所指的就是产品号码product_id
java代码如下:

package com.wepayweb.weixin.util.device; /*** * V型知识库 www.vxzsk.com */ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; public class DeviceTest {public static String sendGet(String url, String charset, int timeout) { String result = ""; try { URL u = new URL(url); try { URLConnection conn = u.openConnection(); conn.connect(); conn.setConnectTimeout(timeout); BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), charset)); String line=""; while ((line = in.readLine()) != null) {result = result + line; } in.close(); } catch (IOException e) { return result; } } catch (MalformedURLException e) { return result; }return result; } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub String access_token=""; // String product_id=""; String data = https://www.it610.com/article/DeviceTest.sendGet("https://api.weixin.qq.com/device/getqrcode?access_token="+access_token+"&product_id="+product_id, "utf-8", 30000); System.out.println("获取设备的deviceid和二维码:"+data); } }

main方法中大概是49行acess_token参数请参考如何获取access_token章节。
第二个参数product_id已经在上面说过,还是不清楚的读者请看上面的图片所标示的。

执行main方法后,返回的数据大概结构如下:

正确的Json返回结果:

{"base_resp":{"errcode":0,"errmsg":"ok"},"deviceid":"gh_1755c346b0b9_004cb738ac631af0","qrticket":"http:\/\/we.qq.com\/d\/AQ2DBteOl389f6b19HSo_uPMm-7ubPTjFztb-iCSa"}

上面的json字符串是我给我自己的蓝牙设备产品生成了一个唯一的二维码,deviceid已经写的很清楚了,可能初学者很迷惑,二维码呢?在哪里在哪里?其实 qrticket 这个字段就是二维码,我们把qrticket的值复制出来,然后百度二维码生成器,把连接复制到生成器里点击生成即可生成图片样式的二维码,操作如下:
微信蓝牙设备开发教程之获取蓝牙设备deviceid和设备二维码(2)
文章图片



图示中的链接实际上有个小问题,就是"\"一定要去掉 错误的Json返回示例:

{resp_msg:{"ret_code":-1," error_info":"system error"}}
【微信蓝牙设备开发教程之获取蓝牙设备deviceid和设备二维码(2)】 如果返回错误 请核查自己的product_id和access_token是否正确。
好了,到此我们已经获取到蓝牙设备的deviceid和二维码了,特别说明:我们这里生成的deviceid并不是硬件厂商给设备烧制的id而是微信公众平台自行给我们生成的设备id 和硬件厂商烧制的并不是同一个id。
提醒读者,生成设备的二维码图片不要急于打开微信和手机蓝牙,扫描绑定设备连接,因为我们只是生成了设备的二维码和id而已,即使绑定设备后,也是无法和设备的进行蓝牙连接的,因为我们还未给设备授权。下一节将会讲解设备授权,敬请期待!



    推荐阅读