• 快应用---使用蓝牙


    1、初始化蓝牙模块

          为了使用蓝牙功能,需要先初始化蓝牙模块。除了设置状态监听以外,所有的蓝牙接口都需要在初始化完成以后才能正常使用;

          //初始化蓝牙模块

          bluetooth.openAdapter({

               //是否打开系统蓝牙开关,默认false

               operateAdapter: true,

               success:function(){

                     console.log('success');

               },

               fail:function(data,code){

                    console.log('handling fail,code = ${code}');

                    if(code===10001) {

                        //蓝牙未打开,提示用户打开蓝牙

                    }

               },

               complete: function(){

                    console.log('complete');

               }

          })

    2、搜索周围设备

          你可以通过搜索操作,发现周围的低功耗蓝牙设备。在进行扫描前,你需要注册设备发现回调以及时接收搜索结果

           //在扫描之前先注册设备发现回调

           bluetooth.ondevicefound = function(data){

                console.log('new device list has founded');

                data.devices.forEach(device=>{

                        //发现所需设备后停止扫描

                        bluetooth.stopDevicesDiscovery();

                        _this.deviceId = device.deviceId;

                        console.log('handling finding new device: ${JSON.stringify(device)}');

                        console.log('handling advertisData = ${_this.ab2hex(device.advertisData)}');

                        for(let key in device.serviceData){

                              console.log('handling serviceData:uuid = ${key},serviceData=${_this.ab2hex(device.serviceData[key])}')

                        }

                })

           };

           //开始扫描

            bluetooth.startDevicesDiscovery({

                 //指定设备uuid,支持16-bit,32-bit,128-bit uuid,不填则扫描周围所有设备

                 services:['1105'],

                  //是否允许重复设备上报,如果不需要监听广播包数据,建议不设置此项,默认值为false

                  allowDuplicatesKey: false,

                  //上报间隔,单位毫秒,为0即立即上报,默认值为0

                  interval:1000,

                  success:function(){

                        console.log('success');

                  }

            })

          3、连接

           在操作设备前,需要先连接设备,连接操作可以通过deviceId直接进行,扫描并不是必要的操作。在连接之前,你可以注册设置连接状态接口来监听设备断连状态;

           //注册设备连接状态监听

           bluetooth.onbleconnectionstatechange = function(data){

                  console.log('handling device state change:deviceId = ${data.deviceId},connected =${data.connected}');

                  //更新设备连接状态

                   _this.connected = data.connected;

                  if(data.connected){

                       //目标设备连接后,获取服务列表

                        _this.getServices();

                  }else{

                       //做断开连接的相关操作,比如重新连接,或者重新扫描

                  }

           }

           //连接设备

            bluetooth.createBLEConnection({

                  deviceId: _this.deviceId,

                  success:function(){

                   },

                  fail:function(data,code){

                  },

                  complete:function(){}

           })

           4、获取设备服务信息

            bluetooth.getBLEDeviceServices({

                  deviceId: _this.deviceId,

                  success: function(data){

                      data.services.forEach(service = >{ 

                             //获取需要的服务,可以根据设备定义的uuid筛选

                            if(service.isPrimary){

                                 _this.serviceId = service.uuid;

                                 //获取特征值列表

                                 _this.getCharacteristices();

                            }

                      })

                  },

                 fail:function(data,code){},

                 complete(){}

            })

  • 相关阅读:
    安卓执行机制JNI、Dalvik、ART之间的比較 。android L 改动执行机制。
    Android studio 导入githubproject
    JS创建对象几种不同方法具体解释
    python 学习笔记 13 -- 经常使用的时间模块之time
    Version和Build的差别
    关于Java基础的一些笔试题总结
    vim编码方式配置的学习和思考
    从头认识java-15.5 使用LinkedHashSet须要注意的地方
    一篇文章,带你明确什么是过拟合,欠拟合以及交叉验证
    Spring -- Bean自己主动装配&Bean之间关系&Bean的作用域
  • 原文地址:https://www.cnblogs.com/sunqq/p/11237179.html
Copyright © 2020-2023  润新知