用户
 找回密码
 立即注册

33

主题

96

帖子

1791

积分

金牌会员

Rank: 6Rank: 6

积分
1791
发表于 2019-5-11 11:34:35
各位高手,
小弟在使用开发版中的蓝牙插件,为在4.8中BLE的蓝牙开发做一些前期准备 (我假设这经典蓝牙和低功耗蓝牙在插件层面的操作差别不会很大),我查看了相关的开发文档,
也查看了Github上给出的示例 (https://github.com/comsmobiler/SmobilerTutorials/blob/master/Source/Plugins/demoBluetooth.cs), 不过在真正进行调试的时候,发现
一个问题:

Connect() 方法无法连接到指定MAC的对端蓝牙设备。

            bluetooth1.Connect(macAddr, (abj, args) =>
            {
                if (args.isError == true)
                    Toast(args.error);
                else
                {
                    Toast("success");
                }
            });

跟踪上面的代码,当试图连接到指定的蓝牙设备时,args 返回值如下
       args.agrs = null
       args.error = null
       args.errorcode = 0
       args.isError = false

但实际上并没有连接到对端蓝牙设备,因为如果通过查看 bluetooth1的状态:
            bluetooth1.GetStatus((obj, args2) =>
            {
                if (args2.isError == true)
                    Toast(args.error);
                else
                {
                    Toast(args2.Status + "  " + args2.Name + "  " + args2.MacAddress);
                    MessageBox.Show(args.Status + "  " + args.Name + "  " + args.MacAddress);
                }
            });

会发现 args2.MacAddress = “”, args2.Status = "Not Connect", args.isError = true

所以,我请教两个问题。
一是,如何正确使用Connect()方法, 确保能够返回正确的连接结果 (虽然还可以在Connect()中继续调用GetStatus()方法进行验证)
二是, 如何设置蓝牙对端。我现在模拟对端蓝牙是在另一个安卓手机上开启蓝牙,并启动了一个蓝牙串口软件,希望通过app对app的方式进行互联互通。我判断无法连接到对方蓝牙调试软件的原因是他不萌没有开启侦听模式。不知道有这样类似的可以进行主动侦听的蓝牙软件?

谢谢
大杰米
使用道具 举报 回复
发表于 2019-5-11 14:07:41
你应该用BLE的专用方法,而不是经典蓝牙的方法,我这边测试4。8版本不能连接不能发数据,不知道为啥!  public void ConnectBle(string uuidService, string uuidCharacteristic, string macAddress, ComponentOnResultHandler handler = null, string uuidDescritor = null);
使用道具 举报 回复 支持 反对
发表于 2019-5-11 14:29:09
lichao8872 发表于 2019-5-11 14:07
你应该用BLE的专用方法,而不是经典蓝牙的方法,我这边测试4。8版本不能连接不能发数据,不知道为啥!: ...

BLE专用方法,有没有参考文档?
使用道具 举报 回复 支持 反对
发表于 2019-5-13 08:13:44
binllyyu 发表于 2019-5-11 14:29
BLE专用方法,有没有参考文档?

目前没有
使用道具 举报 回复 支持 反对
发新帖
您需要登录后才可以回帖 登录 | 立即注册