心草草 发表于 2023-2-3 15:53:58

【蓝牙通讯】有没有大神帮忙 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 18:54:35

本帖最后由 创世魂 于 2023-2-3 21:29 编辑

火山封的比较原始,封装的比较浅。没有像e4a这样深度封装。所以例子看起来比较乱。


在无名模块里面有个 蓝牙操作类操作简单,经过二次封装的,可以下载模块看看。

创世魂 发表于 2023-2-3 21:29:48

无名模块下载地址:http://bbs.voldp.com/forum.php?mod=viewthread&tid=3403&extra=page%3D1

心草草 发表于 2023-2-4 06:17:44

本帖最后由 心草草 于 2023-2-4 06:19 编辑

创世魂 发表于 2023-2-3 18:54
火山封的比较原始,封装的比较浅。没有像e4a这样深度封装。所以例子看起来比较乱。



好的谢谢 ,研究研究。

心草草 发表于 2023-2-5 09:14:10

创世魂 发表于 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]
查看完整版本: 【蓝牙通讯】有没有大神帮忙 E4A转火山安卓 源码啊