用户
 找回密码
 立即注册

33

主题

96

帖子

1811

积分

金牌会员

Rank: 6Rank: 6

积分
1811
发表于 2019-9-9 16:33:01
Smobiler的专家,

我今天在4.9的内测版上使用蓝牙的WriteData事件时,发现它的回调事件无法被触发。以下面的代码为例:

                bluetooth1.WriteData("Hello", (abj, args) =>
                {
                    label1.Text = "data sent";
                    if (args.isError == true)
                        Toast(args.error);
                });


执行上面代码,接收方可以收到数据包“Hello”, 但是在发送方, label1的内容并未改变,在该语句上做断点,断点并不能被触发。

请检查。

谢谢
大杰米。
分享至 : QQ空间
0 人收藏
使用道具 举报 回复
发表于 2020-9-15 14:47:38
您好:
     在云平台回收站彻底删除应用后,蓝牙插件可重新打包.
使用道具 举报 回复 支持 反对
发表于 2019-10-10 12:10:12
peter.pan 发表于 2019-9-24 17:57
您好:
不需要重新购买的,只需要重新打包蓝牙通讯插件(重要:选择2.0.4版本),不需要更新Designer。
在W ...

Peter, 您好。

我现在在云平台上删掉旧的包,重新做Andriod打包的时候,无法在插件下拉框中找到蓝牙插件了。在商城中的订单记录中还是能够看得到之前购买的蓝牙插件的。

我应该如何来找回呢?我的云平台账号是 bigjimmy8257,

谢谢
大杰米
使用道具 举报 回复 支持 反对
发表于 2019-9-24 17:57:40
您好:
不需要重新购买的,只需要重新打包蓝牙通讯插件(重要:选择2.0.4版本),不需要更新Designer。
在WriteData回调中判断isError即可。
目前还没有新的Android Client 的内测版本。
谢谢
使用道具 举报 回复 支持 反对
发表于 2019-9-24 15:47:54
peter.pan 发表于 2019-9-24 14:46
您好:
蓝牙通讯插件添加2.0.4版本:WriteData与WriteBleData添加成功回调 https://shop.smobiler.com/M4 ...

Peter 您好

非常感谢您的支持。我看到了新的蓝牙通信插件,不过我之前已经买过了旧的蓝牙插件,现在必须要重新购买吗?

还有一个问题, 现在在调试的过程中,蓝牙的回调还是不正确,有Designer 或 Android Client 的新内测版本可供使用吗?

谢谢
大杰米
使用道具 举报 回复 支持 反对
发表于 2019-9-24 14:46:00
bigjimmy8257 发表于 2019-9-23 16:45
Peter 您好,

我需要的功能是在通过WriteData() 发送数据后立刻启动后续的操作,而不会等待对端回送的消息 ...

您好:
蓝牙通讯插件添加2.0.4版本:WriteData与WriteBleData添加成功回调 https://shop.smobiler.com/M401-sm_bluetooth
可重新打包新的插件版本2.0.4解决。
谢谢
使用道具 举报 回复 支持 反对
发表于 2019-9-24 10:15:06
bigjimmy8257 发表于 2019-9-23 16:45
Peter 您好,

我需要的功能是在通过WriteData() 发送数据后立刻启动后续的操作,而不会等待对端回送的消息 ...

您好:
已了解你的需求,提交技术部。会着手添加WriteData()发送成功回调。
但还是强调下WriteData方法只是发送设备发送蓝牙信息是否成功,并不是蓝牙设备接收信息是否成功。
所以添加WriteData的成功回调,并不代表蓝牙设备接收成功。
谢谢
使用道具 举报 回复 支持 反对
发表于 2019-9-23 16:45:41
本帖最后由 bigjimmy8257 于 2019-9-24 08:16 编辑

Peter 您好,

我需要的功能是在通过WriteData() 发送数据后立刻启动后续的操作,而不会等待对端回送的消息(因为我的协议中,我发送的消息本身就是应答,不需要对方对此消息再次对它进行答复)。如果没有回调,这个应该如何实现?以前我可以直接在回调部分执行我的后续操作,现在没有办法做了。如果我简单的这么写:
    bluetooth1.WriteData(Data);
    my_codes;

而我的 my_codes 中是要启动别的 窗体,在这种情况下,前面的WriteData() 是不会被执行的。

我想知道是处于什么考虑,开发团队删掉了WriteData()的回调,这个是很有用处的啊。请您反映一下? 看能不能把它加回来。或者把WriteData()加一个非异步阻塞式的执行选项。

谢谢
大杰米
使用道具 举报 回复 支持 反对
发表于 2019-9-23 16:43:15
peter.pan 发表于 2019-9-23 10:36
您好:
WriteData方法只是发送设备发送蓝牙信息是否成功,并不是蓝牙设备接收信息是否成功。所以之前的Wri ...

Peter 您好,

我需要的功能是在通过WriteData() 发送数据后立刻启动后续的操作,而不会等待对端回送的消息(因为我的协议中,我发送的消息本身就是应答,不需要对方对此消息再次对它进行答复)。如果没有回调,这个应该如何实现?以前我可以直接在回调部分执行我的后续操作,现在没有办法做了。如果我简单的这么写:
    bluetooth1.WriteData(Data);
    my_codes;

而我的 my_codes 中是要启动别的 窗体,在这种情况下,前面的WriteData() 是不会被执行的。

我想知道是处于什么考虑,开发团队删掉了WriteData()的回调,这个是很有用处的啊。请您反映一下? 看能不能把它加回来。

谢谢
大杰米
使用道具 举报 回复 支持 反对
发表于 2019-9-23 10:36:44
bigjimmy8257 发表于 2019-9-19 15:19
Peter,

技术部有进一步的反馈吗?

您好:
WriteData方法只是发送设备发送蓝牙信息是否成功,并不是蓝牙设备接收信息是否成功。所以之前的WriteData方法成功并不能判断蓝牙设备真的接收到信息。设备发送了信息,但是否发送成功需要蓝牙设备的交互,若成功发送,DataReceived(接收蓝牙后发生)事件会接收到信息,可以此判断。
谢谢
使用道具 举报 回复 支持 反对
12下一页
发新帖
您需要登录后才可以回帖 登录 | 立即注册