|
[插件使用]
使用ble插件setNotify接口报错-1
[复制链接]
本帖最后由 BIP583191 于 2024-1-25 09:43 编辑
ble.setNotify老是返回false,错误码为-1
测试流程是这样的:测试机自定义loader 里面开始扫描蓝牙并返回蓝牙列表,选择另一台手机的地址,loader里面显示连接成功,并获得该手机设备的服务/特征值,最后根据这三个值去开启监听数据回发,结果返回错误,错误码都是-1,试了几个服务id和特征id都是返回false,是因为app蓝牙连接的另一台设备是手机的关系吗?求解。
以下是页面全部代码:
- <!DOCTYPE HTML>
- <html>
- <head>
- <meta charset="utf-8">
- <meta name="viewport" content="maximum-scale=1.0, minimum-scale=1.0, user-scalable=0, initial-scale=1.0, width=device-width" />
- <meta name="format-detection" content="telephone=no, email=no, date=no, address=no">
- <title>Hello APP</title>
- <link rel="stylesheet" type="text/css" href="../css/apiutil.css" />
- <style>
- label {
- margin: 10px;
- font-size: 24px;
- }
- ul {
- margin-bottom: 10px;
- }
- ul li {
- margin: 5px 10px;
- padding: 5px;
- color: #000;
- word-wrap: break-word;
- }
- </style>
- </head>
- <body>
- <button>蓝牙列表</button>
- <ul id="ul_box">
- </ul>
-
- </body>
- <script type="text/javascript" src="../script/apiutil.js"></script>
- <script type="text/javascript">
- var ble = null;
- apiready = function() {
- ble=api.require('ble');
- ble.initManager(function(ret){
- })
- ble.scan({}, function(ret){
- console.log(ret.status)
- if (ret.status){
- alert('开始扫描');
- ble.getPeripheral(function(ret) {
- if(ret){
- setLi(ret.peripherals);
- }
- });
- }
- });
-
- }
-
- function setLi(ret){
- let ul=document.getElementById('ul_box');
- for(let i=0;i<ret.length;i++){
- let li=document.createElement('li');
- li.id=i;
- li.innerHTML=`<div>
- <p id="name">${ret[i].name}</p>
- <p id="uuid">${ret[i].uuid}</p>
- </div>`;
- li.addEventListener('click',(data)=>{
- console.log(ret[i].uuid);
- this.getConnect(ret[i].uuid);
- })
- ul.append(li);
- }
- }
- //连接设备
- function getConnect(uuid){
- console.log(uuid);
- ble.connect({
- peripheralUUID:uuid
- }, function(ret, err) {
- console.log(JSON.stringify(ret))
- console.log(JSON.stringify(err))
- if (ret.status) {
- alert("连接成功!");
- getServices(uuid);
- } else {
- alert(err.code);
- }
- });
- }
- // 获取连接设备的所有服务
- function getServices(uuid){
- ble.discoverService({
- peripheralUUID:uuid
- }, function(ret) {
- console.log(JSON.stringify(ret));
- let id=ret.services[1];
- getCharacteristics(uuid,id);
- });
- }
- // 获得特征值
- function getCharacteristics(uuid,id){
- ble.discoverCharacteristics({
- serviceUUID:id,
- peripheralUUID:uuid
-
- }, function(ret) {
- console.log(JSON.stringify(ret))
- let cid=ret.characteristics[2].uuid;
- setNotify(uuid,id,cid);
- });
- }
- //监听数据回发
- function setNotify(uuid,id,cid){
- console.log(cid)
- ble.setNotify({
- peripheralUUID: uuid,
- serviceUUID: id,
- characteristicUUID:cid
- }, function(ret,err) {
- console.log(JSON.stringify(ret))
- console.log(JSON.stringify(err))
- });
- }
- </script>
- </html>
复制代码
|
-
-
|