帖子
帖子
用户
博客
课程
123下一页
返回列表 发新帖
29
帖子
0
勋章
557
Y币
模块咨询-Turbo 发表于 2016-5-3 15:29
1,上传下你的代码?猜测是你代码的问题
2,你没传serviceUUID和characteristicUUID?!!!那当然不行(文 ...

小米系列手机为什么不同型号有的可以读取到蓝牙数据,有的就不能读取到,是不是蓝牙模块源码参数没写完整
3
帖子
0
勋章
169
Y币
海适Mobile 发表于 2016-5-3 15:46
var ble = api.require('ble');
ble.getPeripheral( function( ret ){
    if( ret ){

我也遇到了这个问题, getPeripheral总是搜不到设备。

var ble = null;
        apiready = function(){
                // 引入蓝牙BLE模块
                ble = api.require('ble');
                ble.initManager(function(ret){
                        if(ret.state =="poweredOn"){
                                scanDevice();
                        }
                });
        }
        function scanDevice(){
                ble.scan({
                serviceUUIDs:[]
        },function(ret){
                if(ret.status){
                  _toast("正在扫描");
                  getPeripheral();
                  }
        });
        }
       
        function getPeripheral(){
                ble.getPeripheral( function(ret){
                        if(ret){
                                var peripheralArr = ret.peripherals;
                                if(peripheralArr.length == 0){
                                        //_showProgress("扫描中","目前未扫描到设备",true,"fade");
                                        //getPeripheral();
                                        scanDevice();
                                }else{
                                   //api.hideProgress();
                                   api.alert( {msg:JSON.stringify( ret )} );
                                   //getPeripheral();
                }
               }
              });
            }
       
61
帖子
0
勋章
394
Y币
liuxs1989 发表于 2016-5-5 08:48
我也遇到了这个问题, getPeripheral总是搜不到设备。

var ble = null;

你怎么解决的
3
帖子
0
勋章
169
Y币

我发现,这个ble 主要是 手机和 蓝牙设备连接。 手机和手机 主要是通过 spp协议来通信的,所以搜索不到。 我后来使用一个  spp+ble的双模蓝牙模块,就可以使用自己的app 搜索到了。
3
帖子
0
勋章
169
Y币
模块咨询-Turbo 发表于 2016-5-3 15:31
报什么错?

ble这个模块不在官方loader里,得云编译或者自定义loader,祝你好运! ...


版主,你好,我发现你们的ble_API 有严重bug。

发现过程如下:


                         1. 论坛上面很多人都发现,通过ble_API,可以正常连接connect,使用 isConnect方法也正常。但是一旦 read或者write就出现问题了。 你的解答是 使用discover xxx方法,                                获取蓝牙设备的serviceUUID,characteristicUUID, 以及 descriptorUUID。。。

                         2. 于是,我使用了discoverService方法,因为 如果discover Characteristic 和discover Descriptor 都需要使用ServiceUUID。

                         3. 这时,我就已经发现一个严重问题了, 无论怎么实验, discoverService方法返回的 status 始终是false。错误err.code 是 2 。也就是说 没有这个设备。。。

                         4. 然后,我顺藤摸瓜, 研究ble_API的源码。对源码稍微修改了一下,详情见图:

                            1.png

                            2.png

                       5. 然后我使用自己修改完的ble_api, 正常云编译,在真机上面运行。我发现有这样一个问题,connect正常。

                       6. 然后我使用 isConnect,返回的ret是true 说明也是正常。  接下来,我使用 discoverService,仍然ret是false,并且 返回的err.code是22 !!!!!

             结论: 通过以上实验, 我发现 源码中mIBle 在 scan方法中 通过initIBle初始化。  在 isScan,stopScan .....这些方法 都是 判断的前提。  甚至在 Connect 和 isConnect中也都是判断正常的。  但是在 discoverService 以后, mIBle突然==null, 后面才会出现返回是false。

             猜想: 是不是 discoverService 以及后面的 discover XXX, read ,write,setNotify都会是 因为 这个bug,才出现 返回一直是false呢?


              我会继续研究下去, 但是也希望 官方 能尽快 找到问题,解决问题。 给大家提供可靠的API



liuxs1989 发表于 2016-5-7 11:48
版主,你好,我发现你们的ble_API 有严重bug。
发现过程如下:

是不是connect成功再discoverService的。
1
帖子
0
勋章
7
Y币
海适Mobile 发表于 2016-5-3 15:46
var ble = api.require('ble');
ble.getPeripheral( function( ret ){
    if( ret ){

require里面的ble是对象还是类,在哪个文件夹,我怎么找不到啊,急急急
1
帖子
0
勋章
7
Y币
Morsun.Liu 发表于 2016-5-4 09:38
ble.scan({
    serviceUUIDs:[]
}, function( ret ){


require里面的ble是对象还是类,在哪个文件夹,我怎么找不到啊,急急急
3
帖子
0
勋章
4582
Y币
xubinbin 发表于 2016-10-26 18:10
require里面的ble是对象还是类,在哪个文件夹,我怎么找不到啊,急急急

在云端控制台的模块里添加上这个BLE模块就行了,代码按照文档来
1
帖子
0
勋章
7
Y币
xvetang 发表于 2016-10-26 18:23
在云端控制台的模块里添加上这个BLE模块就行了,代码按照文档来

不明白,你在往细里说一下哈,我小白,有点懵,谢谢哈
123下一页
您需要登录后才可以回帖 登录

本版积分规则