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对象
- 内部字段:
{
status: 'poweredOn' //字符串类型;蓝牙设备连接状态,取值范围如下:
//poweredOn:设备开启状态 -- 可用状态
//poweredOff:设备关闭状态
//resetting:正在重置状态
//unknown:初始的时候是未知的
//unsupported:设备不支持的状态
}
示例代码
var spp = api.require('spputil');
spp.init(function(ret){
alert("当前设备状态:" + ret.status);
});
可用性
Android系统
可提供的1.0.0及更高版本
scan
扫描附近蓝牙设备,会自动停止
scan(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
status: 'FOUND' , // 符串类型;蓝牙设备扫描状态,取值范围如下:
//BLUTTOOTH_DISABLED:蓝牙设备不可用
//START_DISCOVERY_FAILED:启动扫描失败
//FOUND:发现设备
//DISCOVERY_FINISHED:扫描完成
//DISCOVERY_STARTED:开始扫描
device :'', //字符串类型;扫描到的设备,当状态为FOUND时候,会有该字段,该字段为json格式的字符串,包含name,address,bondState(12:已经绑定;11:正在绑定;10:未绑定)三个属性,
devicesNum : 2 ,//数字类型;扫描到的设备数量,当状态为DISCOVERY_FINISHED时候会有该字段
devices:''//数组类型;包含本次扫描所有扫描到的设备;
}
示例代码
var spp = api.require('spputil');
spp.scan(function(ret) {
if (ret.status == "BLUTTOOTH_DISABLED") {
api.alert({
title: '错误',
msg: '蓝牙未启用,请启用蓝牙设备',
});
} else if (ret.status == "FOUND") {
console.log("发现新设备:" + ret.device);
var device = JSON.parse(ret.device);
//do something with device;
} else if (ret.status == "DISCOVERY_FINISHED") {
console.log("扫描完成,共发现" + ret.devicesNum + "个设备");
} else if (ret.status == "DISCOVERY_STARTED") {
console.log("开始扫描");
}
});
可用性
Android系统
可提供的1.0.0及更高版本
isScanning
是否在扫描
isScanning(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
status: true //布尔型;true||false
}
示例代码
var spp = api.require('spputil');
spp.isScanning(function(ret) {
console.log("当前是否再扫描蓝牙设备:" + ret.status);
})
可用性
Android系统
可提供的1.0.0及更高版本
stopScan
停止扫描
stopScan()
示例代码
var spp = api.require('spputil');
spp.stopScan();
补充说明
不调用该方法,扫描任务也会自动停止
可用性
Android系统
可提供的1.0.0及更高版本
connect
连接指定外围设备
connect({params}, callback(ret, err))
params
address:
- 类型:字符串
- 描述:要连接的外围设备的 MAC地址。
callback(ret, err)
ret:
- 类型:JSON对象
- 内部字段:
{
status: true , //布尔型;true||false 连接是否成功
device: ''// 字符串类型;连接成功的蓝牙设备,当状态为true时候,会有该字段,该字段为json格式的字符串,包含name,address,bondState(12:已经绑定;11:正在绑定;10:未绑定)三个属性,
}
err:
- 类型:JSON对象
- 内部字段:
{
msg: 'device not exist' //字符串类型;
// device not exist : 设备不存在
// 其他:系统级别的错误信息
}
示例代码
var spp = api.require('spputil');
spp.connect({
address: address
}, function(ret, err) {
if (ret.status) {
console.log("连接蓝牙设备【" + address + "】成功");
var device = JSON.parse(ret.device)
} else {
console.log("连接蓝牙设备【" + address + "】失败:" + err.msg);
}
});
可用性
Android系统
可提供的1.0.0及更高版本
disconnect
断开连接
disconnect({params}, callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON对象
- 内部字段:
{
status: true //布尔型;true||false
}
err:
- 类型:JSON对象
- 内部字段:
{
msg: '' //字符串类型;系统级别的错误信息
}
示例代码
var spp = api.require('spputil');
spp.disconnect(function(ret, err) {
});
可用性
Android系统
可提供的1.0.0及更高版本
isConnected
设备是否连接
isConnected({params}, callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
status: true 布尔型;true||false
}
示例代码
var spp = api.require('spputil');
spp.isConnected(function(ret) {
console.log("设备的连接状态为:" + ret.status);
});
可用性
Android系统
可提供的1.0.0及更高版本
send
发送数据
send({params}, callback(ret, err))
params
sendData
- 类型:字符串
- 描述:发送的数据。
isHex
- 类型:布尔类型
- 描述:是否是HEX数据
callback(ret, err)
ret:
- 类型:JSON对象
- 内部字段:
{
status: true, //布尔型;true||false 发送是否成功
}
err:
- 类型:JSON对象
- 内部字段:
{
msg: 'device not connect' //字符串类型;
// device not connect : 设备未连接
// 其他:系统级别的错误信息
}
示例代码
var spp = api.require("spputil");
spp.send({
isHex: true,
sendData: '55CC090010013B0000',
}, function(ret, err) {
if(ret.status){
console.log("发送数据成功")
} else {
alert(err.msg)
}
})
可用性
Android系统
可提供的1.0.0及更高版本
receive
接收数据
receive({params}, callback(ret, err))
params
isHex
- 类型:布尔类型
- 描述:是否是HEX数据
callback(ret, err)
ret:
- 类型:JSON对象
- 内部字段:
{
status: true, //布尔型;true||false 是否成功接收数据
data : ''//字符串类型;接收到的数据,当状态为true是包含该字段
}
err:
- 类型:JSON对象
- 内部字段:
{
msg: 'device not connect' //字符串类型;可能的取值:
// device not connect : 设备未连接
}
示例代码
var spp = api.require("spputil");
spp.receive({
isHex : true
}, function(ret) {
if (ret.status) {
var data = ret.data;
} else {
console.log("设备未连接");
}
});
补充说明
接收数据不需要重复调用接口,只需要调用一次,如果蓝牙数据有数据返回会不停的触发回调函数。
可用性
Android系统
可提供的1.0.0及更高版本