App及小程序蓝牙开发的几个重要步骤
不管是基于IOS还是Android或者是小程序 蓝牙开发的过程都包含下面几个重要的步骤1.搜索设备设备搜索是一个扫描程序它会搜索本地附近启用了蓝牙的设备并从这些设备上获取一些信息这个过程有时简称为“发现中”、“查询中”或者“扫描中”。然而在本地区域范围内的蓝牙设备只有在它是允许被发现的模式下才会响应其它设备扫描发现的请求。如果一个设备是可被发现的状态模式它会通过共享一些信息来响应搜索发现的请求例如设备名字设备类型和它的MAC地址。使用这些信息执行扫描的设备才能创建一个连接连接上被发现的设备。a.获取适配器mBluetoothAdapter BluetoothAdapter.getDefaultAdapter();b.打开适配器Intent enableIntent new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);startActivityForResult(enableIntent, REQUEST_ENABLE_BT);c.搜索蓝牙设备获取已配对设备SetBluetoothDevice 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);

相关新闻

AI项目从入门到上线23-代码一推送就自动训练模型?GitHub Actions + ML训练流水线

AI项目从入门到上线23-代码一推送就自动训练模型?GitHub Actions + ML训练流水线

你写完三行Python训练脚本,手动开GPU服务器,手动配环境,手动跑——跑完发现忘了记录超参数。你的"自动化"就是把手动改成双手操作。今天这篇,教你用GitHub Actions让每次git push自动触发训练、自动记录结果、自动发告警…

2026/10/17 11:39:13 阅读更多 →
解析房产中介APP开发的主要功能以优势

解析房产中介APP开发的主要功能以优势

在当下这移动互联网的时代,房产中介商应该如何实现转型,从而获得更大的用户群体呢?答案只有一个,那必须开发出自己专属的APP!因为现在互联网的趋势已经逐渐向移动端靠拢,大部分的流量都被APP锁占据&#xf…

2026/10/18 9:34:49 阅读更多 →
lx-music-custom-source配置文件详解:3分钟搞定本地缓存与音质优化

lx-music-custom-source配置文件详解:3分钟搞定本地缓存与音质优化

lx-music-custom-source配置文件详解:3分钟搞定本地缓存与音质优化 【免费下载链接】lx-source lx-music-custom-source 洛雪音乐自定义解析源 项目地址: https://gitcode.com/gh_mirrors/lx/lx-source lx-music-custom-source(洛雪音乐自定义解析…

2026/10/18 3:35:57 阅读更多 →

最新新闻

寿险财务接口渐进式改造:绞杀者模式与防腐层实战指南

寿险财务接口渐进式改造:绞杀者模式与防腐层实战指南

简介:这是毕博(BearingPoint)于2004年为太保寿险出具的财务接口系统渐进改造方案建议书,面向保险行业IT规划、财务系统升级及业务财务一体化改造相关从业者。方案围绕P07新财务系统上线目标,系统梳理项目背景、渐进改造…

2026/10/18 15:51:15 阅读更多 →
2026做商城小程序选模板平台还是定制开发好:分步决策流程与踩坑经验

2026做商城小程序选模板平台还是定制开发好:分步决策流程与踩坑经验

做商城小程序,到底选模板平台还是定制开发?这几乎是每个想做线上生意的商家都会卡住的问题。选错的代价很直接:选了模板,后期业务复杂了发现改不动,到处受限;选了定制开发,钱花了一大笔&#xf…

2026/10/18 15:51:15 阅读更多 →
CefSharp 125 x64 H.264 支持包集成指南:WPF 视频播放与避坑

CefSharp 125 x64 H.264 支持包集成指南:WPF 视频播放与避坑

简介:本资源为基于 Chromium 6422 分支的 CEF 125 系列 x64-H264 发布包,面向使用 C# 与 WPF 开发桌面客户端的工程师,尤其适合需要在 Windows 平台内嵌浏览器并支持 H264 视频播放的场景。包内共 74 个文件,以 58 个 pak 本地化与…

2026/10/18 15:51:15 阅读更多 →
数据架构设计方法论:四层五域六类元数据落地指南

数据架构设计方法论:四层五域六类元数据落地指南

简介:这是一份关于数字化转型数据架构设计方法论的演示文稿,共51页,适合企业架构师、数据治理人员及数字化规划者参考,也可用于内部培训与方案汇报。内容从数据架构定义入手,厘清了数据架构与业务架构、应用架构、技术…

2026/10/18 15:51:15 阅读更多 →
2026门店系统年费构成拆解:从档位标价到隐性支出的决策树选法

2026门店系统年费构成拆解:从档位标价到隐性支出的决策树选法

门店系统收费是否合理,多数人第一反应是翻开报价单比总价。真正决定一套系统用一年贵不贵的,不是某个标价数字,而是把档位标价、活动折算、超量追加、升级补差与续费口径全部摊开之后的全口径年费。只盯着首年标价下单,常常在第二…

2026/10/18 15:51:15 阅读更多 →
hostapd-2.10源码解析:从编译到二次开发实战指南

hostapd-2.10源码解析:从编译到二次开发实战指南

简介:hostapd-2.10源码包面向Linux无线开发与嵌入式网络工程师,用于在Linux系统上以软件方式创建和管理WiFi热点,替代硬件AP实现主机模式接入点。包内共655个文件,以363个C源文件和235个头文件为核心,覆盖nl80211驱动、…

2026/10/18 15:50:15 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →