当前位置: 首页 > news >正文

App及小程序蓝牙开发的几个重要步骤

不管是基于IOS,还是Android或者是小程序 ,蓝牙开发的过程都包含下面几个重要的步骤:
1.搜索设备
设备搜索是一个扫描程序,它会搜索本地附近启用了蓝牙的设备,并从这些设备上获取一些信息(这个过程有时简称为“发现中”、“查询中”或者“扫描中”)。然而,在本地区域范围内的蓝牙设备只有在它是允许被发现的模式下才会响应其它设备扫描发现的请求。如果一个设备是可被发现的状态模式,它会通过共享一些信息来响应搜索发现的请求,例如设备名字,设备类型和它的MAC地址。使用这些信息,执行扫描的设备才能创建一个连接连接上被发现的设备。

a.获取适配器:mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
b.打开适配器:Intent enableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableIntent, REQUEST_ENABLE_BT);
c.搜索蓝牙设备:
获取已配对设备:Set>BluetoothDevice< pairedDevices = mBtAdapter.getBondedDevices();
搜索周边设备:mBtAdapter.startDiscovery();
BluetoothDevice.ACTION_FOUND找到一个;
BluetoothAdapter.ACTION_DISCOVERY_FINISHED搜索结束。

2.连接到蓝牙ConnectThread:
服务端设备和客户端设备获取BluetoothSocket的方法不同。服务端设备将会在接受一个传入的连接请求时获得。客户端设备会在它打开与服务端设备的RFCOMM通道时获得。
一种解决方案是自动将每一台设备作为服务端,这样每一台设备都拥有一个server socket可以监听连接。之后,每一台设备都可以启动一个与其它设备的连接并变成客户端设备。另外,也可以明确一台设备作为服务端根据需要启动一个server socket,其它设备只要简单的建立连接。
a.根据地址获取设备:
BluetoothDevice device = mBluetoothAdapter.getRemoteDevice(address);
b.获取设备soceket:
device.createRfcommSocketToServiceRecord(MY_UUID_SECURE);
c.取消扫描设备,连接soceket:端口:
mAdapter.cancelDiscovery();
mmSocket.connect();

3.数据信息交互ConnectedThread:
首先,你需要为所有数据流的读写操作分派一个特定的线程。这是非常重要的,因为read(byte[])和write(byte[])方法都是会阻塞的方法。read(byte[])方法在从数据流中读取到数据之前会一直阻塞。write(byte[])方法不会经常阻塞,但是在远程设备没有及时调用read(byte[])方法并且中间缓冲区满的时候也会进行阻塞。因此,你的线程中的主循环应该专门用来从InputStream中读取数据。线程中再指定一个公共方法将数据写入到OutputStream中。
a.获取读写流
tmpIn = socket.getInputStream();
tmpOut = socket.getOutputStream();
b.阻塞方法读取:
bytes = mmInStream.read(buffer);
c.发送消息
mmOutStream.write(buffer);
d.通过handler将文本添加到listview,成为新的消息
mConversationArrayAdapter.add(\\\\\\\"Me: \\\\\\\" + writeMessage);

http://www.jsqmd.com/news/1289950/

相关文章:

  • EventBus事件订阅与通知机制:构建响应式Elixir应用的关键
  • 为什么 IP 信誉比代理速度更重要?
  • 免费FDTD电磁仿真终极指南:从零开始掌握Meep光子学模拟
  • 在手机上怎么压缩视频:网盘上传太慢的一天日记 - AI测评专家
  • MacHyperVSupport完全指南:让macOS在Hyper-V虚拟机中焕发新生
  • 企业认证与附件简历功能开发
  • MacHyperVSupport高级配置:ACPI补丁与内核参数调优指南
  • Elasticsearch Inquisitor vs Kibana:两款查询调试工具的全方位对比
  • AlohaMini Python编程指南:从基础控制到高级任务规划
  • 2026AI智能抠图工具分场景实操指南:免费付费、电脑网页手机全渠道梳理 - 工具软件使用方法推荐
  • 告别演讲超时焦虑:PPTTimer智能演示计时器终极指南
  • 用客户评价闭环,让工单服务“有始有终”
  • 2026 年至今,秦皇岛有实力的灵棚批发厂家哪家可靠,村口突然多了个不起眼的地方,竟藏着这些不为人知的秘密? - 领域鉴赏官
  • 基于SpringBoot的供应链管理系统的设计与实现(源码+LW+部署讲解)
  • AI专利侵权风险预测实战手册(2024全球TOP50判例验证版)
  • node-modbus-serial核心功能解析:从RTU到TCP的全协议支持
  • 开发Specificity Graph插件:扩展图表功能的API详解
  • Chromium 147 编译指南 macOS 篇:编译配置与构建(五)
  • 摄影作品线上投票怎么做?2026西瓜评选图文投票活动搭建指南 - 投票小程序
  • 终极指南:N_m3u8DL-CLI-SimpleG - 零基础掌握M3U8视频下载的完整解决方案
  • 2026 荆州10 大口碑叛逆青少年教育学校盘点!解决厌学、亲子冲突,家长择校参考 - Luckyone王
  • 别再写 setter 了!MapStruct Plus vs MapStruct,谁才是 Bean 转换的真神?
  • 2026指南:厦门快又好家政服务有限公司——老牌搬迁服务机构的产业纵深与能力解析 - 优企名品
  • 2026Excel转PDF完整操作指南,多种Excel导出PDF方法实操讲解 - 工具软件使用方法推荐
  • 西安客折扣卡系统开发实战:从架构到部署完整指南
  • 专业GEO优化公司深度评测:从痛点到解决方案的完整选型指南 - 品牌前沿专家
  • 深度学习图像数据挖掘文档 《垃圾图像自动分类》 3124(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_
  • ScreenMarkers v2.46 汉化绿色版 桌面上的“物理直尺”与参考线神器 2.46 - Windows
  • MediaPipe核心功能揭秘:5分钟掌握面部检测、手部追踪与姿态估计
  • 2026甄选:导静电自流平施工领域值得关注的五家服务公司 - 优企名品