【蓝牙通讯】有没有大神帮忙 E4A转火山安卓 源码啊
发不了附加 【e4a 中级教程 35蓝牙】()火山例子【蓝牙通讯】已经看好几个星期了 实在看不懂
‘------------------------------------
事件 主窗口.创建完毕()
如果 权限操作1.检查权限("android.permission.BLUETOOTH") = 真 且 权限操作1.检查权限("android.permission.BLUETOOTH_ADMIN") = 真且 权限操作1.检查权限("android.permission.READ_PHONE_STATE") = 真 则
弹出提示("已获得权限,直接初始化蓝牙")
初始化蓝牙()
否则
弹出提示("未获得权限,开始申请权限")
权限操作1.申请全部权限()
结束 如果
结束 事件
事件 权限操作1.申请完毕(权限数组 为 文本型(),申请结果 为 整数型())
如果 权限操作1.检查权限("android.permission.BLUETOOTH") = 真 且 权限操作1.检查权限("android.permission.BLUETOOTH_ADMIN") = 真且 权限操作1.检查权限("android.permission.READ_PHONE_STATE") = 真 则
初始化蓝牙()
否则
信息框("信息","蓝牙权限没有开启,请在应用的权限设置页面开启蓝牙权限!","确定")
权限操作1.打开权限设置()
结束 如果
结束 事件
过程 初始化蓝牙()
如果 蓝牙1.是否存在() = 假 则
信息框("信息","本机找不到蓝牙设备,程序将退出!","确定")
结束程序()
结束 如果
如果 蓝牙1.是否已开启() = 假 则
蓝牙1.开启蓝牙()
否则
蓝牙1.置工作模式(1)
结束 如果
结束 过程
事件 蓝牙1.蓝牙设置完毕(设置结果 为 整数型)
如果 设置结果 = 1 则
蓝牙1.置工作模式(1)
结束 如果
结束 事件
事件 按钮1.被单击()
位置传感器1.开始监测() '在新版的安卓系统中,必须开启GPS定位才能搜索到蓝牙设备
列表框1.清空项目()
蓝牙1.搜索设备() '搜索设备
弹出提示("正在搜索")
结束 事件
事件 蓝牙1.发现设备(设备名称 为 文本型,设备地址 为 文本型,是否已配对 为 逻辑型)
列表框1.添加项目(设备名称 & "-" & 设备地址 & "-" & 是否已配对)
列表框1.置项目标记(列表框1.取项目数()-1,设备地址)
结束 事件
事件 列表框1.表项被单击(项目索引 为 整数型)
变量 设备地址 为 文本型
设备地址 = 列表框1.取项目标记(项目索引)
蓝牙1.连接设备(设备地址)'连接设备
弹出提示("正在连接:" & 设备地址)
结束 事件
事件 蓝牙1.连接完毕(连接结果 为 逻辑型,设备名称 为 文本型,设备地址 为 文本型,连接模式 为 整数型)
变量 设备信息 为 文本型
变量 文本数组 为 文本型()
如果 连接结果 = 真 则
按钮2.可用 = 真
主窗口.标题 = "已连接:" & 设备名称
弹出提示("连接成功")
否则
弹出提示("连接失败")
结束 如果
结束 事件
事件 蓝牙1.收到数据(数据 为 字节型(),设备名称 为 文本型,设备地址 为 文本型)
编辑框1.内容 = 编辑框1.内容 & "\n" & 设备名称 & ":\n " & 字节到文本(数据,"GBK")
编辑框1.置光标位置(取文本长度(编辑框1.内容))
'=====================以下是接收单片机发送过来的16进制HEX数据的方法=======================
' 变量 计次 为 整数型
' 判断循环首 计次 < 取数组成员数(数据)
' 编辑框1.内容 = 编辑框1.内容 & "" & 到十六进制(数据(计次))
' 计次 = 计次 + 1
' 判断循环尾
结束 事件
事件 按钮2.被单击()
如果 编辑框2.内容 <> "" 则
编辑框1.内容 = 编辑框1.内容 & "\n本机:\n " & 编辑框2.内容
蓝牙1.发送数据(文本到字节(编辑框2.内容,"GBK")) '发送消息
否则
信息框("信息","消息内容不能为空!","确定")
结束 如果
结束 事件
事件 按钮3.被单击()
蓝牙1.断开连接() '退出处理,释放资源,结束内部处理线程
结束程序()
结束 事件
本帖最后由 创世魂 于 2023-2-3 21:29 编辑
火山封的比较原始,封装的比较浅。没有像e4a这样深度封装。所以例子看起来比较乱。
在无名模块里面有个 蓝牙操作类操作简单,经过二次封装的,可以下载模块看看。
无名模块下载地址:http://bbs.voldp.com/forum.php?mod=viewthread&tid=3403&extra=page%3D1 本帖最后由 心草草 于 2023-2-4 06:19 编辑
创世魂 发表于 2023-2-3 18:54
火山封的比较原始,封装的比较浅。没有像e4a这样深度封装。所以例子看起来比较乱。
好的谢谢 ,研究研究。 创世魂 发表于 2023-2-3 21:29
无名模块下载地址:http://bbs.voldp.com/forum.php?mod=viewthread&tid=3403&extra=page%3D1
测试了一下 3个手机 两个手机取本机地址 变成了【02:00:00:00:00:00】(开始是好的 重启手机无效 不知道怎么弄)
【方式一】 A手机开启服务 BC链接
A手机开启服务 BC 两个手机链接 在第二个手机C链接时 发送数据成功但服务手机A接收不了 要等第一个手机B发了一次数据才能服务手机A才能收到 (收到的数据包含第二个手机C之前发送成功但未收到的所有数据)
【方式二】A链接 bc手机开启服务(E4A此方式虽只能和最后一个链接的互通 但可以收到所有链接过的手机发了的数据)
也和上面问题一样 A手机链接 BC后再返回链接B时 就不能链接了
释放资源也不行 必须完全关闭程序
页:
[1]