首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏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() 例如,设备名称服务的UUID是 00001800-0000-1000-8000-00805F9B34FB。 128位UUID:这些UUID通常用于自定义的服务和特性,以确保全球唯一性。 例如,一个自定义的服务UUID可以是 0000XXXX-0000-1000-8000-00805F9B34FB,其中的 XXXX 部分可以是任意的16进制数字。

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

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

    前言   在上一篇中我们进行扫描设备的处理,本文中进行连接和发现服务的数据处理,运行效果图如下所示: 正文   现在我们从MainActivity进入到ScanActivity,选中一个设备返回到 ,在onCreate()函数中进行BleCore的赋值,然后设置Ble的回调,实现BleCallback接口,重写里面的函数,当连接成功之后会通过回调deviceInfo()得到设备状态,因为是子线程所以在 四、发现服务   连接写好了,下面可以写发现服务了,我们可以在连接成功的处理中进行发现服务,下面我们修改一下BleGattCallback中的onConnectionStateChange()函数中的代码 例如,设备名称服务的UUID是 00001800-0000-1000-8000-00805F9B34FB。 128位UUID:这些UUID通常用于自定义的服务和特性,以确保全球唯一性。 例如,一个自定义的服务UUID可以是 0000XXXX-0000-1000-8000-00805F9B34FB,其中的 XXXX 部分可以是任意的16进制数字。

    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 服务设置为 : 03B80E5A-EDE8-4B33-A751-6CE34EC4C700 BLE 特性设置为 : 7772E5DB-3868-4112-A1A9-F2669D106BF3 该特性的属性设置为 功能 , 验证 硬件设备 是否开发成功 ; BLE 测试相关 : 四、单片机制作电子乐器 ---- 参考 我是鹏老师 发表的几篇博客 : 【PCB授课笔记】51单片机制作一个【卡林巴】【电子琴】 03B80E5A-EDE8-4B33-A751-6CE34EC4C700') MIDI_CHAR_UUID = (ubluetooth.UUID('7772E5DB-3868-4112-A1A9-

    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、扫描按钮 (short) value[6] & 0xff)) / 32768.0f; // q3 floats[position][16] = ((((short) value[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.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
  • 来自专栏云深之无迹

    BLE姿态测量模块-9轴版本(加速度,陀螺仪,磁场)

    像自己封装的芯片,查不到了,反正看应该是一颗9轴传感器,加速度,陀螺仪,三轴角度。 ADXL345,才是三轴陀螺仪+三轴加速度 角度是积分积出来的:计算角度需要角速度和时间积分。

    31410编辑于 2024-11-08
  • 来自专栏FreeBuf

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

    FireEye向企业和政府用户销售安全设备,其旗舰产品安装在大型网络的出口点用以监控设备,也就是安装在内部流量通向互联网的地方。 因为FireEye设备通常会使用第二个联网接口来进行设备更新管理,所以出现的这个问题可行性十分高! 在本文中我们将讨论Project Zero发现的第666个漏洞:FireEye设备可通过被动监控接口进行利用的漏洞。 FireEye已经发布了针对该漏洞的补丁,请用户立即应用该补丁! [1]FireEye设备可以在IPS模式下进行配置,这么做可以修改监控流量 [2]该问题刚刚好是Project Zero发现的第666个漏洞 常见问答 Q:如何检查是否我的FireEye设备存在该漏洞? *class [a-zA-Z0-9]+ extends Applet") regexScript = re.compile(".

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

    iOS 监听设备方向旋转(iOS 9)

    NSInteger, VFOrientation) { VFOrientationPortrait = 1, VFOrientationLandscape = -1, }; // 处理设备旋转

    1.7K41发布于 2018-09-04
  • 来自专栏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设备指纹识别

    由于设备本身所包含的情报有限,因此从设备配套应用出发,寻找App操作BLE设备时使用的UUID,我们就能够对发送BLE广播的设备进行精确识别,知道这些设备的类型及具体功能。 并通过实地测试,证明了这种方式能够识别日常生活中的大多数设备(94.6%),同时发现其中部分设备(7.4%)存在潜在问题。 第二步,在实际场地上对BLE设备广播进行嗅探,验证实际发现设备能否与App中提取出来的UUID关联上,从而实现BLE设备的精确识别。 通过对Google商店1.8万个支持BLE通信的App进行分析,BLESCOPE发现其中61.3%的应用使用了Just Works方式配对,15.8%的应用的BLE连接过程存在上述两种漏洞。 ? 与产品团队联合推出绿盟物联网安全风控平台,定位运营商行业物联网卡的风险管控;推出固件安全检测平台,以便快速发现设备中可能存在的漏洞,以避免因弱口令、溢出等漏洞引起设备控制权限的泄露。

    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
  • 来自专栏施炯的IoT开发专栏

    Windows 10 IoT Serials 9 – 如何利用IoTCoreAudioControlTool改变设备的音频设备

    但是,系统目前并没有提供直接的UI来设置音频的输入或者输出设备。经过查阅之后发现,我们可以使用命令行来更改默认的音频设备,具体方法如下。     可以看到,我们可以使用该命令来罗列音频设备,修改其音量,设置默认设备。修改音量其实可以在Windows Device Portal中完成,这里来看一下修改默认设备。 设置完成以后,可以查看Windows Device Portal,发现其Audio Device中的Speaker设备已经更改了,如下图所示: ?     如果要更改回来,可以输入如下命令:     IoTCoreAudioControlTool d {0.0.0.00000000}.{4846a864-a89c-435f-9f05-8098bcd7b5d5 }     设置完成以后,可以查看Windows Device Portal,发现其Audio Device中的Speaker设备已经更改了,如下图所示: ?

    1.2K90发布于 2018-01-10
  • 来自专栏远哥制造

    实战 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 5d04301c9dbe with ID 5d04301c9dbe and RSSI -75 9/30/2023, 7:16:24 PM - info - : Discovered nearby BLE peripheral c8934f270fe9 with ID c8934f270fe9 and RSSI -82 9/30/2023, 7:17:01

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