首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏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 扫描的五秒变成一秒,把"连不上"变成"三秒重连",就是这些细节堆出来的。

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

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

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

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

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

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

    1.9K10编辑于 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设备指定特征数据代码尝试写入数据

    73320编辑于 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.4K30编辑于 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 功能 , 验证 硬件设备 是否开发成功 ; BLE 测试相关 : 四、单片机制作电子乐器 ---- 参考 我是鹏老师 发表的几篇博客 : 【PCB授课笔记】51单片机制作一个【卡林巴】【电子琴】 可通过蓝牙连接手机库乐队 MIDI Boy【理科生的第一件乐器】 在上述 【MIDI_Boy】使用ESP32做一个炫酷的【卡林巴】【电子琴】, 可通过蓝牙MIDI连接手机库乐队 博客中涉及到一些 硬件设备 ((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.3K110发布于 2018-05-17
  • 来自专栏Android干货

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

      最近项目有个需求,手机设备连接多个蓝牙4.0 设备 并获取这些设备的数据。   查询了很多资料终于实现,现进行总结。 一、Demo需求     1、搜索设备 , 选择多个要连接的设备。     2、开始连接,显示数据。         包含:       1、一个列表,显示 所有扫描到的设备的MAC地址,点击状态在 ''已选择' or '‘未选择’ 之间改变,表明当前设备有没有加入到需要连接的设备集合中      2、扫描按钮 xqx * @email djlxqx@163.com * blog:http://www.cnblogs.com/xqxacm/ * createAt 2017/9/6 * description: ble 连接开始,显示连接设备的数据。(注意,这里是按我的传感器来的。实际需要换成你所用到的设备的 数据 转换公式!) 如有问题,欢迎右侧加群。

    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.5K30编辑于 2023-08-18
  • 深入解析LE Controller命令:BLE设备通信的核心驱动力

    这些命令对于BLE设备的基本功能和性能优化至关重要。 一、LE Controller命令概述 LE Controller命令是BLE技术中,由链路层发出的、用于指导BLE设备执行特定操作的一组指令。 LE Controller命令集是BLE设备中用于管理蓝牙连接和广播数据的关键工具。通过合理使用这些命令集,可以实现BLE设备发现、连接和数据传输等功能。 准备阶段 了解设备:确保对所使用的BLE设备有充分的了解,包括其型号、功能、支持的命令集等。 熟悉命令集:查阅BLE设备的官方文档或技术手册,了解LE Controller支持的具体命令集及其用途。 关闭连接(可选) 断开连接:在完成所有操作后,如果不再需要与BLE设备进行通信,主机软件可以断开与BLE设备的连接。 // 连接后的操作(如:服务发现、读写特征值等)在此处进行 // ... // 清理和关闭BLEble_stack_deinit();

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

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

    FireEye向企业和政府用户销售安全设备,其旗舰产品安装在大型网络的出口点用以监控设备,也就是安装在内部流量通向互联网的地方。 在本文中我们将讨论Project Zero发现的第666个漏洞:FireEye设备可通过被动监控接口进行利用的漏洞。 FireEye已经发布了针对该漏洞的补丁,请用户立即应用该补丁! [1]FireEye设备可以在IPS模式下进行配置,这么做可以修改监控流量 [2]该问题刚刚好是Project Zero发现的第666个漏洞 常见问答 Q:如何检查是否我的FireEye设备存在该漏洞? : Flags [S], seq 2112408534, win 29200, options [mss 1460,sackOK,TS val 1133741089 ecr 0,nop,wscale 7] 比如调用swf helper程序flasm对flash文件进行反汇编,dmg helper调用p7zip提取Mac OS磁盘映象,以及png helper调用pngchechk来验证图片。

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

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

    什么是 MAC 地址 媒体访问控制也称为 MAC 地址,是实际属于设备本身并由其供应商分配的物理地址。 MAC地址本身实际上由两部分组成: 前三个八位字节被称为 OUI 或组织唯一标识符,它告诉我们该设备的供应商实际上是谁。 然而,最后三个八位字节通常被称为供应商分配的 ID,这将允许供应商识别该特定设备

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

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

    OpenClaw 采用 Bonjour (mDNS/DNS-SD) 作为核心发现协议,并深度集成 Tailscale 以实现跨网络的广域发现。 核心设计原则 便利性优先:自动发现减少手动 IP 配置。 安全不妥协:发现信息仅用于 UI 提示,绝不作为权威路由或信任依据。 iOS/Android 客户端在首次连接基于发现的网关时,必须强制用户手动确认证书指纹。 2. 配置实战:从最小化到全功能 在 openclaw.json 中控制发现行为。 { discovery: { mdns: { mode: "minimal" } } } 模式二:完全功能 (家庭/开发环境) 广播所有辅助信息,方便多设备无缝连接。 典型部署场景 场景 A:家庭多设备 (LAN) 目标:手机、平板、电脑自动发现

    1.6K10编辑于 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连接过程存在上述两种漏洞。 ? | Android Developers. https://www.bluetooth.com/specifications/gatt/generic-attributes-overview/. [7] 与产品团队联合推出绿盟物联网安全风控平台,定位运营商行业物联网卡的风险管控;推出固件安全检测平台,以便快速发现设备中可能存在的漏洞,以避免因弱口令、溢出等漏洞引起设备控制权限的泄露。

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

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

    88310编辑于 2025-08-15
  • 来自专栏科控自动化

    S7-12001500 组态智能设备

    S7-1200 之间 Profinet IO 通信简介 S7-1200作为智能IO设备和S7-300的Profinet 通信 机器人取件--KUKA机器人与S7-1200profinet配置 通常,可有 使用 STEP 7,可以通过将已组态的智能设备导出到 GSD 文件,为其它项目或工程组态系统组态一个智能设备。像处理其它 GSD 文件一样,将此 GSD 文件导入其它项目或工程组态系统中。 将此设备组态为一个智能设备(例如,CPU 319-3 PN/DP,FW 3.2)。 为此这一智能设备选择 PROFINET 接口。 STEP 7 分配一个可以更改的默认名称。 选择通信关系类型。例如,为“控制器与设备的通信关系”(Controller-device communication relation) 选择 CD。 通过 GSD 文件组态智能设备 如果在其它项目或其它工程组态系统中使用智能设备,请按上述步骤组态上位 IO 控制器和智能设备。之后,需将该智能设备导出为 GSD 文件。

    1.9K11编辑于 2022-03-29
  • 来自专栏韩曙亮的移动开发专栏

    【错误记录】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.7K00编辑于 2023-03-28
  • 来自专栏嵌入式音视频

    【HomeKit】HAT User Manual教程

    这包括高级描述,如“开始发现”,但扩展到包括解密的HTTP和BLE有效负载。 HAT将还捕获使用HAP的每个网络接口上的低级数据包。 图1.4:手动模式-跟踪按钮 1.4.2创建虚拟设备 启动应用程序后,您应该看到手动模式窗口。通过该窗口,您可以创建和管理IP和BLE客户端,它们充当虚拟的iOS设备。 图1.6:手动模式-初始IP设备设置 图1.7:手动模式-初始BLE设备设置 1.4.4发现配件 开始发现后,您的bonjourn -enabled或BLE配件将显示在设备下。 R6 4/17/15 7 添加了验证配对列表的规则,并更新了BLE功能,在HAT 1.0中添加和移除控制器 1/30/15 6 更新了HTTP验证,并增加了用于写入的UI增强HAT 1.0 Beta 6 3相关的IP和BLE验证规则 6/23/14 2 BLE支持与HAT 1.0 Beta 2a相关 4/7/14 1 HAT 1.0 Beta 1的快速入门指南

    1.3K20编辑于 2023-10-15
  • 来自专栏远哥制造

    实战 HomeAssistant 安装 room-assistant 房间级自动化平台

    0x00.前言 从上周开始给大家分享了关于 HomeAssistant 相关的文章,不知不觉中来到了 21 天中的最后一周,本周计划继续写这个合集 之前介绍了如何对 IOS 设备和 Android 设备进行跟踪的方法 HomeAssistant 基于 GPSLogger 跟踪 Android 设备 https://cloud.tencent.com/developer/article/2334399 但是这两种方法仅适用于设备在户外时的定位 ,然后它会自动发现经过配置的所有实体 文档中列出了它相比其他类似产品的优势,包括 monitor Happy Bubbles ESP32-mqtt-room FIND3 运动检测器 0x02.安装 文档 nearby BLE peripheral STANMORE II with ID 54b7e5b025ca and RSSI -90 9/30/2023, 7:17:00 PM - info - BluetoothLowEnergyService 设备写入到配置文件中,这样才能检测是否在房间内 我正在参与2023腾讯技术创作特训营第二期有奖征文,瓜分万元奖池和键盘手表

    1.7K31编辑于 2023-09-30
领券