spputil

来自于:开发者立即使用

init scan isScanning stopScan connect disconnect isConnected send receive

概述

本模块支持串口服务(UUID:00001101-0000-1000-8000-00805F9B34FB), 支持HEX数据发送。

init

初始化

init({params}, callback(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. status: 'poweredOn' //字符串类型;蓝牙设备连接状态,取值范围如下:
  3. //poweredOn:设备开启状态 -- 可用状态
  4. //poweredOff:设备关闭状态
  5. //resetting:正在重置状态
  6. //unknown:初始的时候是未知的
  7. //unsupported:设备不支持的状态
  8. }

示例代码

  1. var spp = api.require('spputil');
  2. spp.init(function(ret){
  3. alert("当前设备状态:" + ret.status);
  4. });

可用性

Android系统

可提供的1.0.0及更高版本

scan

扫描附近蓝牙设备,会自动停止

scan(callback(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. status: 'FOUND' , // 符串类型;蓝牙设备扫描状态,取值范围如下:
  3. //BLUTTOOTH_DISABLED:蓝牙设备不可用
  4. //START_DISCOVERY_FAILED:启动扫描失败
  5. //FOUND:发现设备
  6. //DISCOVERY_FINISHED:扫描完成
  7. //DISCOVERY_STARTED:开始扫描
  8. device :'', //字符串类型;扫描到的设备,当状态为FOUND时候,会有该字段,该字段为json格式的字符串,包含name,address,bondState(12:已经绑定;11:正在绑定;10:未绑定)三个属性,
  9. devicesNum : 2 ,//数字类型;扫描到的设备数量,当状态为DISCOVERY_FINISHED时候会有该字段
  10. devices:''//数组类型;包含本次扫描所有扫描到的设备;
  11. }

示例代码

  1. var spp = api.require('spputil');
  2. spp.scan(function(ret) {
  3. if (ret.status == "BLUTTOOTH_DISABLED") {
  4. api.alert({
  5. title: '错误',
  6. msg: '蓝牙未启用,请启用蓝牙设备',
  7. });
  8. } else if (ret.status == "FOUND") {
  9. console.log("发现新设备:" + ret.device);
  10. var device = JSON.parse(ret.device);
  11. //do something with device;
  12. } else if (ret.status == "DISCOVERY_FINISHED") {
  13. console.log("扫描完成,共发现" + ret.devicesNum + "个设备");
  14. } else if (ret.status == "DISCOVERY_STARTED") {
  15. console.log("开始扫描");
  16. }
  17. });

可用性

Android系统

可提供的1.0.0及更高版本

isScanning

是否在扫描

isScanning(callback(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. status: true //布尔型;true||false
  3. }

示例代码

  1. var spp = api.require('spputil');
  2. spp.isScanning(function(ret) {
  3. console.log("当前是否再扫描蓝牙设备:" + ret.status);
  4. })

可用性

Android系统

可提供的1.0.0及更高版本

stopScan

停止扫描

stopScan()

示例代码

  1. var spp = api.require('spputil');
  2. spp.stopScan();

补充说明

不调用该方法,扫描任务也会自动停止

可用性

Android系统

可提供的1.0.0及更高版本

connect

连接指定外围设备

connect({params}, callback(ret, err))

params

address:

  • 类型:字符串
  • 描述:要连接的外围设备的 MAC地址。

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. status: true , //布尔型;true||false 连接是否成功
  3. device: ''// 字符串类型;连接成功的蓝牙设备,当状态为true时候,会有该字段,该字段为json格式的字符串,包含name,address,bondState(12:已经绑定;11:正在绑定;10:未绑定)三个属性,
  4. }

err:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. msg: 'device not exist' //字符串类型;
  3. // device not exist : 设备不存在
  4. // 其他:系统级别的错误信息
  5. }

示例代码

  1. var spp = api.require('spputil');
  2. spp.connect({
  3. address: address
  4. }, function(ret, err) {
  5. if (ret.status) {
  6. console.log("连接蓝牙设备【" + address + "】成功");
  7. var device = JSON.parse(ret.device)
  8. } else {
  9. console.log("连接蓝牙设备【" + address + "】失败:" + err.msg);
  10. }
  11. });

可用性

Android系统

可提供的1.0.0及更高版本

disconnect

断开连接

disconnect({params}, callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. status: true //布尔型;true||false
  3. }

err:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. msg: '' //字符串类型;系统级别的错误信息
  3. }

示例代码

  1. var spp = api.require('spputil');
  2. spp.disconnect(function(ret, err) {
  3. });

可用性

Android系统

可提供的1.0.0及更高版本

isConnected

设备是否连接

isConnected({params}, callback(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. status: true 布尔型;true||false
  3. }

示例代码

  1. var spp = api.require('spputil');
  2. spp.isConnected(function(ret) {
  3. console.log("设备的连接状态为:" + ret.status);
  4. });

可用性

Android系统

可提供的1.0.0及更高版本

send

发送数据

send({params}, callback(ret, err))

params

sendData

  • 类型:字符串
  • 描述:发送的数据。

isHex

  • 类型:布尔类型
  • 描述:是否是HEX数据

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. status: true, //布尔型;true||false 发送是否成功
  3. }

err:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. msg: 'device not connect' //字符串类型;
  3. // device not connect : 设备未连接
  4. // 其他:系统级别的错误信息
  5. }

示例代码

  1. var spp = api.require("spputil");
  2. spp.send({
  3. isHex: true,
  4. sendData: '55CC090010013B0000',
  5. }, function(ret, err) {
  6. if(ret.status){
  7. console.log("发送数据成功")
  8. } else {
  9. alert(err.msg)
  10. }
  11. })

可用性

Android系统

可提供的1.0.0及更高版本

receive

接收数据

receive({params}, callback(ret, err))

params

isHex

  • 类型:布尔类型
  • 描述:是否是HEX数据

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. status: true, //布尔型;true||false 是否成功接收数据
  3. data : ''//字符串类型;接收到的数据,当状态为true是包含该字段
  4. }

err:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. msg: 'device not connect' //字符串类型;可能的取值:
  3. // device not connect : 设备未连接
  4. }

示例代码

  1. var spp = api.require("spputil");
  2. spp.receive({
  3. isHex : true
  4. }, function(ret) {
  5. if (ret.status) {
  6. var data = ret.data;
  7. } else {
  8. console.log("设备未连接");
  9. }
  10. });

补充说明

接收数据不需要重复调用接口,只需要调用一次,如果蓝牙数据有数据返回会不停的触发回调函数。

可用性

Android系统

可提供的1.0.0及更高版本