首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Android小菜鸡

    Andorid 对接BLE蓝牙设备(连接篇)

    蓝牙低能耗(Bluetooth Low Energy,或称Bluetooth LE、BLE,旧商标Bluetooth Smart)也称低功耗蓝牙,是蓝牙技术联盟设计和销售的一种个人局域网技术,旨在用于医疗保健 笔者前段时间做了一个功能,需要对接一个蓝牙设备,该蓝牙设备使用的就是BLE蓝牙。这里给大家分享一下我的实现。这篇文章主要是实现程序与BLE蓝牙设备的连接,交互和设置、测试工具等请期待下一篇文章。 bluetoothLeScanner = bluetoothAdapter.bluetoothLeScanner // Android5.0新增的扫描API,扫描返回的结果更友好,比如BLE 我们首先利用它去检测设备是否有蓝牙驱动,设备蓝牙是否打开等信息,并优化用户体验。满足以上条件后,我们可以开始扫描附近的蓝牙设备。 到此,我们就获取到了附近所有的使用BLE蓝牙的设备设备信息。至于如何交互?如何筛选BLE蓝牙设备的指定权限服务?笔者会在下篇一一道来,并且会上传一个笔者做的蓝牙测试工具。

    2.5K10发布于 2019-10-16
  • Rokid AI 眼镜远程协作应用一线互联开发实践:设备发现BLE 扫描

    你周围不止一副蓝牙设备掏出手机扫一下蓝牙,列表里几十个设备。耳机、手环、车间里的蓝牙网关、隔壁工位的手机——Rokid AI 眼镜就混在里面。 问题是,眼镜的 BLE 广播名有时候是空的,有时候显示为乱码,你不能只靠名字来认。我们把扫描过滤做成了两级:第一级是 Android 系统层的 BLE 扫描配置。 上层的代码通过 StateFlow 拿到设备列表后直接绑定到 UI,每次新设备进来自动排序: 打个比方:普通蓝牙设备像是标准快递,手机操作系统认识这个快递单,帮你签收了。 这篇文章其实就想说一件事:蓝牙扫描不是搜一下就行,设备过滤、排序、连接建立,每个环节的细节决定了工业现场的体验。把 BLE 扫描的五秒变成一秒,把"连不上"变成"三秒重连",就是这些细节堆出来的。

    12810编辑于 2026-06-01
  • 来自专栏Android、鸿蒙开发

    Harmony Ble蓝牙App(二)连接与发现服务

    Ble蓝牙App(二)连接与发现服务 前言   在上一篇中我们进行扫描设备的处理,本文中进行连接和发现服务的数据处理,运行效果图如下所示: 正文   现在我们在ScanSlice扫描设备,选中一个设备进入 ohos:height="match_content" ohos:width="match_content" ohos:end_margin="6vp ,在onStart()方法中进行BleCore的赋值,然后设置Ble的回调,实现BleCallback接口,重写里面的函数,当连接成功之后会通过回调deviceInfo()得到设备状态,因为是子线程所以在 四、发现服务   连接写好了,下面可以写发现服务了,我们可以在连接成功的处理中进行发现服务,下面我们修改一下BleDeviceCallback中的connectionStateChangeEvent() 在蓝牙通信中,设备使用UUID来发布和查找服务以及识别特性。UUID是蓝牙设备之间进行通信时的重要标识,确保了设备和服务的唯一性。

    95110编辑于 2023-11-24
  • 来自专栏Android、鸿蒙开发

    Android Ble蓝牙App(二)连接与发现服务

    前言   在上一篇中我们进行扫描设备的处理,本文中进行连接和发现服务的数据处理,运行效果图如下所示: 正文   现在我们从MainActivity进入到ScanActivity,选中一个设备返回到 ,在onCreate()函数中进行BleCore的赋值,然后设置Ble的回调,实现BleCallback接口,重写里面的函数,当连接成功之后会通过回调deviceInfo()得到设备状态,因为是子线程所以在 四、发现服务   连接写好了,下面可以写发现服务了,我们可以在连接成功的处理中进行发现服务,下面我们修改一下BleGattCallback中的onConnectionStateChange()函数中的代码 ,如下图所示: 通过gatt.discoverServices()进行发现服务的动作,在此之前通过deviceInfo设置当前的动作状态,发现服务执行会触发onServicesDiscovered() 在蓝牙通信中,设备使用UUID来发布和查找服务以及识别特性。UUID是蓝牙设备之间进行通信时的重要标识,确保了设备和服务的唯一性。

    2K10编辑于 2023-08-09
  • 来自专栏树莓派开发 (Raspberry Pi)

    Python 与 BLE 设备通信指南 -- P1

    BLE设备代码以下脚本将扫描并列出附近所有 BLE 设备及其信号强度 (RSSI)import asynciofrom bleak import BleakScannerasync def main() : print("正在扫描附近的 BLE 设备 (持续 5 秒)...") 设置足够的扫描时间 (如上面的5秒) 可以覆盖多个广播周期, 提高设备发现率.列出指定BLE设备服务与特征列表方式一: 通过MAC地址指定设备 (推荐, 大多数情况下MAC地址唯一)import asynciofrom 方法来扫描和连接BLE设备, 区别在于筛选条件不同.BLE设备名称不唯一, 因此通过名称指定设备时可能会出现多个设备同时被找到的情况. 设备的特征值有读取(Read), 写入(Write), 通知(Notify)等属性, 一个特征值可以有多个属性.特征值的属性可以用上一节列出指定BLE设备服务与特征列表提供的代码来查看.写入指定BLE设备指定特征数据代码尝试写入数据

    78420编辑于 2025-12-11
  • 来自专栏zinyan

    Android BLE 蓝牙开发,连接蓝牙设备进行通讯

    针对低功耗蓝牙通讯,Android 4.3(API 18)开始引入了 BLE 库。我们可以直接使用 Android SDK 中的蓝牙 BLE 库,而不用额外导入依赖库。 而使用BLE库,我们可以直接通过蓝牙设备的UUID进行连接(通过GATT服务),在当前应用内就能直接连接了。而不用通过系统设置。 那么我们将会无法发现蓝牙设备。 也就是执行蓝牙扫描 API 无法得到任何结果(PS::Logcat 中的错误日志会告诉你,要开启位置权限,否则无法扫描发现蓝牙设备)。 <! 3.8 写数据到蓝牙设备中 我们如果想将内容推送到蓝牙设备中,在发现服务的时候onServicesDiscovered 遍历特性中,确保是用于写消息的特性对象后。 同时一个蓝牙设备对象,可能有多种服务功能。 如果不想自己写线程变量轮询设备发送过来的消息,就通过注册消息监听。让BLE框架帮我们进行轮询之后,再通知到我们。

    10.8K30编辑于 2023-07-14
  • 来自专栏韩曙亮的移动开发专栏

    BLE MIDI】开发 BLE MIDI 硬件电子乐器设备需要遵循的相关规范 ( 资料收集 )

    如何开发一个 标准的 BLE MIDI 设备 , 该设备可以被 Android / iOS / Mac / Windows / Linux 等操作系统平台识别为标准 MIDI 设备 , 并从该设备中接收 标准的 BLE-MIDI 硬件设备开发成的乐器 , 要兼容以下平台的如下软件 : Windows : Cubase Mac : Logic Pro iOS : 库乐队 ( Garage Band 服务设置为 : 03B80E5A-EDE8-4B33-A751-6CE34EC4C700 BLE 特性设置为 : 7772E5DB-3868-4112-A1A9-F2669D106BF3 该特性的属性设置为 功能 , 验证 硬件设备 是否开发成功 ; BLE 测试相关 : 四、单片机制作电子乐器 ---- 参考 我是鹏老师 发表的几篇博客 : 【PCB授课笔记】51单片机制作一个【卡林巴】【电子琴】 ((len(name) + 1, 0x09)) + name , resp_data = b'\x11\x07\x00\xC7\xC4\x4E\xE3\x6C\x51\xA7\x33

    4.4K30编辑于 2023-03-29
  • 来自专栏iOSDevLog

    Android 6.0 扫描不到 Ble 设备需开启位置权限

    之前做 Ble 开发都是在 Android 6.0 系统以下的版本中进行测试]的,今天使用 Android 6.0 的设备测试的时候,发现扫描不到周围的 Ble 设备。 后来发现 6.0 需要在应用运行过程中请求位置权限,并且还要打开位置。 设备"); } //请求权限 ActivityCompat.requestPermissions(this, new String 做完上面你以为就 OK 了,但是可能你会发现,并没有什么卵用,依然不能搜索到周围的 Ble 设备,原因是可能的你的位置服务(定位 GPS)没有打开。 设备;如果定位没有打开,则需要用户去打开,像下面这样: private static final int REQUEST_CODE_LOCATION_SETTINGS = 2; ... private

    2.4K110发布于 2018-05-17
  • 来自专栏Android干货

    Android项目实战(三十四):蓝牙4.0 BLE设备连接

      最近项目有个需求,手机设备连接多个蓝牙4.0 设备 并获取这些设备的数据。   查询了很多资料终于实现,现进行总结。 一、Demo需求     1、搜索设备 , 选择多个要连接的设备。     2、开始连接,显示数据。    /** * @author xqx * @email djlxqx@163.com * blog:http://www.cnblogs.com/xqxacm/ * createAt 2017/9/6 /** * @author xqx * @email djlxqx@163.com * blog:http://www.cnblogs.com/xqxacm/ * createAt 2017/9/6 * description: ble 4.0 多设备连接 */ public class XBleActivity extends Activity implements View.OnClickListener

    6.2K80发布于 2018-05-18
  • 来自专栏Android、鸿蒙开发

    Android Ble蓝牙App(六)请求MTU与显示设备信息

    正文   本文中我们需要请求Mtu,然后做一些利用使用的UI改变,比如增加菜单,和显示设备操作信息。 一、请求MTU的概念   在 Android 的 BLE(Bluetooth Low Energy)开发中,requestMtu 是一个用于请求修改 BLE 连接的最大传输单元(MTU)的方法。 通过调用 requestMtu 方法,你可以请求增加或减少 BLE 连接中的 MTU 大小。较大的 MTU 可以提高数据传输效率,因为每个数据包可以携带更多的数据。 layout_constraintTop_toBottomOf="@+id/data_layout" /> </androidx.constraintlayout.widget.ConstraintLayout>   你会发现这个布局内容和写数据弹窗如出一辙 六、显示设备信息   先说说为什么要显示设备操作信息,因为这可以方便我们测试一些功能,虽然我们可以在控制台看到所有内容,不过终究不是时时刻刻都是调试的,也有直接使用的情况,那么针对这个需求,我们可以在主页面中点击设备信息是显示一个设备信息列表弹窗

    5.6K30编辑于 2023-08-18
  • 深入解析LE Controller命令:BLE设备通信的核心驱动力

    这些命令对于BLE设备的基本功能和性能优化至关重要。 一、LE Controller命令概述 LE Controller命令是BLE技术中,由链路层发出的、用于指导BLE设备执行特定操作的一组指令。 LE Controller命令集是BLE设备中用于管理蓝牙连接和广播数据的关键工具。通过合理使用这些命令集,可以实现BLE设备发现、连接和数据传输等功能。 关闭连接(可选) 断开连接:在完成所有操作后,如果不再需要与BLE设备进行通信,主机软件可以断开与BLE设备的连接。 // 连接后的操作(如:服务发现、读写特征值等)在此处进行 // ... // 清理和关闭BLEble_stack_deinit(); 在发送命令前,了解设备对命令顺序的要求。 5. 命令超时: 设置合理的超时时间,以防设备长时间无响应。 超时后采取相应处理措施,如重新发送命令或进行设备检查。 6.

    23810编辑于 2026-01-20
  • 来自专栏FreeBuf

    编号666:谷歌发现FireEye设备高危漏洞

    FireEye向企业和政府用户销售安全设备,其旗舰产品安装在大型网络的出口点用以监控设备,也就是安装在内部流量通向互联网的地方。 简要概述 一个组织在其内部网络中安装了FireEye设备,然后连接到一个SPAN或是出口点的镜像端口(这些监控端口内置在专业级网络设备中)。 因为FireEye设备通常会使用第二个联网接口来进行设备更新管理,所以出现的这个问题可行性十分高! 在本文中我们将讨论Project Zero发现的第666个漏洞:FireEye设备可通过被动监控接口进行利用的漏洞。 FireEye已经发布了针对该漏洞的补丁,请用户立即应用该补丁! [1]FireEye设备可以在IPS模式下进行配置,这么做可以修改监控流量 [2]该问题刚刚好是Project Zero发现的第666个漏洞 常见问答 Q:如何检查是否我的FireEye设备存在该漏洞?

    1.5K80发布于 2018-02-07
  • 来自专栏kali blog

    如何根据MAC地址发现设备制造商

    什么是 MAC 地址 媒体访问控制也称为 MAC 地址,是实际属于设备本身并由其供应商分配的物理地址。 该地址由 48 位组成,使用由双冒号分隔的 6 个八位字节(8 位/1 个字节)表示,并显示为十六进制值而不是二进制/十进制表示。 MAC地址本身实际上由两部分组成: 前三个八位字节被称为 OUI 或组织唯一标识符,它告诉我们该设备的供应商实际上是谁。 然而,最后三个八位字节通常被称为供应商分配的 ID,这将允许供应商识别该特定设备

    9.4K30编辑于 2021-12-19
  • 来自专栏openclaw系列

    OpenClaw 设备发现机制指南:BonjourmDNS 与 Tailscale 集成

    OpenClaw 采用 Bonjour (mDNS/DNS-SD) 作为核心发现协议,并深度集成 Tailscale 以实现跨网络的广域发现。 核心设计原则 便利性优先:自动发现减少手动 IP 配置。 安全不妥协:发现信息仅用于 UI 提示,绝不作为权威路由或信任依据。 { discovery: { mdns: { mode: "minimal" } } } 模式二:完全功能 (家庭/开发环境) 广播所有辅助信息,方便多设备无缝连接。 典型部署场景 场景 A:家庭多设备 (LAN) 目标:手机、平板、电脑自动发现。 "off" } }, gateway: { bind: "loopback", remote: { url: "wss://api.example.com" } } } 6.

    1.7K10编辑于 2026-03-13
  • 来自专栏绿盟科技研究通讯

    CCS 2019论文解读:基于自动化App分析的BLE设备指纹识别

    并通过实地测试,证明了这种方式能够识别日常生活中的大多数设备(94.6%),同时发现其中部分设备(7.4%)存在潜在问题。 第二步,在实际场地上对BLE设备广播进行嗅探,验证实际发现设备能否与App中提取出来的UUID关联上,从而实现BLE设备的精确识别。 通过对Google商店1.8万个支持BLE通信的App进行分析,BLESCOPE发现其中61.3%的应用使用了Just Works方式配对,15.8%的应用的BLE连接过程存在上述两种漏洞。 ? for Members. https://www.bluetooth.com/specifications/assigned-numbers/16-bit-uuids-for-members/. [6] 与产品团队联合推出绿盟物联网安全风控平台,定位运营商行业物联网卡的风险管控;推出固件安全检测平台,以便快速发现设备中可能存在的漏洞,以避免因弱口令、溢出等漏洞引起设备控制权限的泄露。

    2.1K10发布于 2020-01-15
  • 《探秘浏览器Web Bluetooth API设备发现流程》

    而Web Bluetooth API的出现,直接赋予了网页与低功耗蓝牙(BLE设备对话的能力,从智能手环的健康数据同步,到智能家居设备的远程控制,再到工业场景中的传感器数据采集,其应用边界正不断拓宽。 而设备发现流程作为API规范中的关键模块,其设计既遵循了蓝牙技术联盟(SIG)制定的BLE协议标准,又充分考虑了Web环境的安全性与用户体验,形成了一套兼顾技术合规性与实践易用性的逻辑体系。 从蓝牙通信的角色划分来看,BLE设备主要分为中央设备与外围设备两类:中央设备具备主动发起扫描、建立连接的能力,而外围设备则通过周期性发送广播数据包的方式,向周围环境宣告自身存在,并等待中央设备的连接请求 GATT(通用属性配置文件)是BLE协议中定义数据交互规范的核心部分,它将设备的功能抽象为“服务”(Service)与“特征”(Characteristic):服务是功能的逻辑分组(如“心率监测服务”包含与心率相关的所有功能 (通常不超过10个),超过限制会导致部分设备无法被发现

    94710编辑于 2025-08-15
  • 来自专栏绿盟科技研究通讯

    物联网设备6个特征

    二、使用HTTP协议的物联网设备特征 1web首页为登录页面 开放HTTP服务的物联网设备大多有web页面,其功能除了对设备信息的展示外,同时也便于管理人员对设备的控制和管理。 图6.Title字段中的物联网设备特征示例 5半结构化特征 半结构化特征是结构化特征的一种形式,它并不像结构化特征具有固定的数据模型结构,但他包含相关标记来分隔语义元素以及对记录和字段进行分层,因此也被称为自描述的结构 图8.标签属性中的物联网设备特征示例 6非结构化特征 顾名思义就是没有固定结构的数据特征。比如文档、图片、视频/音频等都属于非结构化数据。 感兴趣的读者欢迎点击阅读资产系列相关文章: 《物联网安全始于资产识别——物联网资产识别方法研究综述》 《物联网资产暴露情况——IPv6拿起接力棒》 《只要运营功夫深,大海也能捞到针——IPv6地址扫描实践分享 与产品团队联合推出绿盟物联网安全风控平台,定位运营商行业物联网卡的风险管控;推出固件安全检测平台,以便快速发现设备中可能存在的漏洞,以避免因弱口令、溢出等漏洞引起设备控制权限的泄露。

    5.5K20发布于 2020-06-23
  • 来自专栏后台全栈之路

    腾讯 tRPC-Go 教学——(6)服务发现

    距离上一篇文章居然已经过去两个月了,毕竟苦逼打工人忙得一点空都没有……本文我们来讲一讲对于微服务架构来说,最重要的一个点了:服务发现及其对应的名字服务功能。 tRPC-Go 教学——(3)微服务间调用腾讯 tRPC-Go 教学——(4)tRPC 组件生态和使用腾讯 tRPC-Go 教学——(5)filter、context 和日志组件腾讯 tRPC-Go 教学——(6) 服务发现腾讯 tRPC-Go 教学——(7)服务配置和指标上报腾讯 tRPC-Go 教学——(8)通过泛 HTTP 能力实现和观测 MCP 服务概述在 之前的文章 中我们提到,微服务之间调用时,我们需要在 其他注意项至此,使用北极星进行名字服务注册、发现的功能就介绍完了。 原文标题:《腾讯 tRPC-Go 教学——(6)服务发现》发布日期:2024-05-01原文链接:https://cloud.tencent.com/developer/article/2414446。

    2.1K71编辑于 2026-01-02
  • 来自专栏韩曙亮的移动开发专栏

    【错误记录】Android 应用连接 BLE 设备无法读取数据 ( 可以写出数据 | 无法读取数据 )

    文章目录 一、问题描述 二、问题分析 三、完整设置代码 一、问题描述 ---- Android 应用连接 BLE 硬件设备后 , 出现如下情况 : 发送数据成功 : Android 应用 向 BLE 硬件设备发送数据 , 成功 ; 接收数据失败 : Android 应用 无法接收到 BLE 硬件设备发送给手机的数据 ; 二、问题分析 ---- 举个栗子 : 这是在 Google 官方的 BLE 蓝牙示例程序 BluetoothLeGatt 中的 BLE 连接配置代码 : /** * Enables or disables notification on a give characteristic BluetoothGattDescriptor 的 setValue 方法 , 为其设置 BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE 值 , 并写出该值 , 即可将读取该特性的设置发送给 BLE 蓝牙设备的数据 ;

    3.8K00编辑于 2023-03-28
  • BLE广播解析:低功耗互联基石,构建无线未来

    广播包的内容 广播包在BLE(低功耗蓝牙)通信中扮演着至关重要的角色,它们携带着设备的关键信息,使得其他设备能够发现和识别这些设备。 1.1.1. 广播包是BLE设备之间通信的基础,它们携带着设备的关键信息,使得设备能够被其他设备发现和识别。这些信息对于建立连接、进行数据传输和实现各种BLE应用场景都至关重要。 1.2. 广播的目的 BLE广播的主要目的包括以下几个方面: 设备发现与识别:BLE广播允许设备向外发送其存在和相关信息,使得其他BLE设备能够发现并识别它。这对于设备间的初始连接和交互至关重要。 这种广播事件允许其他BLE设备扫描并发现该广播设备,但不允许直接与之建立连接。它通常用于广播设备的存在性、某些服务或特征的可发现性,以及设备可能提供的额外信息。 通过BLE广播,设备可以轻松地实现设备发现、数据同步、状态更新等功能,极大地提升了用户体验。 同时,BLE广播还具有高度的灵活性和兼容性。

    1.3K10编辑于 2026-01-20
领券