首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

, 成功 ; 接收数据失败 : Android 应用 无法接收到 BLE 硬件设备发送给手机数据 ; 二、问题分析 ---- 举个栗子 : 这是在 Google 官方 BLE 蓝牙示例程序 BluetoothLeGatt...中 BLE 连接配置代码 : /** * Enables or disables notification on a give characteristic...但是上述设置 , 仅设置了一半内容 , 还需要为 BluetoothGattCharacteristic BluetoothGattDescriptor 作进一步设置 ; 在上面的基础 , 还需要为... , 然后写出该 BluetoothGattDescriptor , 此时设置读取该 BluetoothGattCharacteristic 特性才能生效 , 否则无法读取其中数据 ; BluetoothGattCharacteristic...setValue 方法 , 为其设置 BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE , 并写出该 , 即可将读取该特性设置发送给 BLE 蓝牙模块

1.3K00
您找到你想要的搜索结果了吗?
是的
没有找到

一步一步实现Android低功耗蓝牙(BLE)基本开发

二.判断设备是否支持蓝牙 这里有两种处理方式: 如果你想让只有支持BLE手机才能安装你应用程序的话,可以在清单文件中添加如下内容,这样的话如果设备不支持BLE的话你应用都装不,当然这种方式不太友好...BluetoothDevice device = mBluetoothAdapter.getRemoteDevice(address) 五.连接BLE设备GATT服务 与BLE设备交互第一步是连接到它...,更具体地说,连接到设备GATT服务。...要在BLE设备连接到GATT服务,可以使用connectGatt()方法。...该方法接受三个参数:一个上下文对象、autoConnect(布尔表示是否在BLE设备可用时自动连接到该设备),以及对BluetoothGattCallback引用: mBluetoothGatt =

1.9K40

低功耗蓝牙BLE外围模式(peripheral)-使用BLE作为服务端

低功耗蓝牙BLE外围模式(peripheral)-使用BLE作为服务端 Android对外模模式(peripheral)支持 从Android5.0开始才支持 关键术语和概念 以下是关键BLE术语和概念摘要...ATT经过优化,可在BLE设备运行。 为此,它使用尽可能少字节。 每个属性由通用唯一标识符(UUID)唯一标识,UUID是用于唯一标识信息字符串ID标准化128位格式。...由ATT传送属性被格式化为特征和服务 。 特性 -A特性包含描述特性单个和0-n个描述符。 一个特性可以被认为是一个类型,类似于类。 描述符 - 描述符是描述特征定义属性。...例如,描述符可以指定人类可读描述,特征可接受范围或特征特定测量单位。 服务 - 服务是一个集合特点。 例如,您可以有一个名为“心率监视器”服务,其中包括诸如“心率测量”特征。...您可以在bluetooth.org找到现有基于GATT个人资料和服务列表 。 角色和职责 以下是Android设备与BLE设备互动时适用角色和职责: 中央与外围。 这适用于BLE连接本身。

1.6K00

【Android应用开发】Android 蓝牙低功耗 (BLE) ( 第一篇 . 概述 . 蓝牙低功耗文档 翻译)

-- 示例 : 例如, 一个 描述符 可以说明一个 可读描述, 一个 特性可接受范围, 或者 一个特性测量单元. (5) Service 服务 Service 服务 :  -- 服务本质...Android APP 从 GATT 服务器获取数据, 服务器 BLE "heart rate monitor (心率监测)" 支持 "Heart Rate Profile (心率规范 - 一种 BLE...//使用下面的函数决定 设备 BLE 功能 是否可用 //此时你可以选择性关闭 BLE 相关功能 if (!...连接到 GATT 服务 (1) 连接指定 BluetoothDevice 蓝牙设备 连接指定设备 :  -- 连接到 GATT 服务 : 与 BLE 设备交互第一步是 连接BLE 设备中 GATT...关闭 APP 中 BLE 连接 关闭 BLE 设备连接 :  -- 关闭方法 : 一旦结束了 BLE 设备使用, 调用 BluetoothGatt close() 方法, 关闭 BLE 连接,

5.7K30

Android Ble蓝牙App(五)数据操作

当一个BLE设备(称为客户端)需要获取另一个BLE设备(称为服务器)数据时,可以使用Ble Read操作。客户端向服务器发送读取请求,并等待服务器返回所请求数据。...这种模式保证了数据传输可靠性和顺序性。 单次数据传输:Ble Read操作一次只能读取一个数据或一个数据块。如果需要读取多个数据,客户端需要连续发送多个读取请求。...这种写操作是一种可靠方式,确保数据传输可靠性。 Write No Response(无回复写操作):在某些情况下,客户端发送数据并不需要服务器的确认回复,或者在时间要求更加紧凑传输。...一、概念 Ble Enable Notify是指在蓝牙低功耗(BLE)通信中使能通知功能操作。当设备之间建立了蓝牙连接后,设备可以通过特征(Characteristic)来交换数据。...Android13,所在在蓝牙一些API处理上,我们都要考虑兼容问题,我觉得奇怪是,为什么不在Android12版本中顺便加上去这些改动API,也不重要,开发者就是这个命,这里代码实际比较简单

96830

Android使用BLE(低功耗蓝牙,Bluetooth Low Energy)

通信距离也有改变,传统蓝牙传输距离几十米到几百米不等,BLE则规定为100米。...*Attribute Protocol(ATT)—GATT在ATT协议基础建立,也被称为GATT/ATT。ATT对在BLE设备运行进行了优化,为此,它使用了尽可能少字节。...为了方便理解,想象你有一个Android手机和一个用于活动跟踪BLE设备,手机支持中央角色,活动跟踪器支持外围(为了建立BLE连接你需要注意两件事,只支持外围设备两方或者只支持中央设备两方不能互相通信...="true"/> 代码中判断手机是否支持BLE特性: // 使用此检查确定BLE是否支持在设备,然后你可以有选择性禁用BLE相关功能 if (!...下面的代码检查蓝牙是否开启,如果没有开启,将显示错误提示用户去设置开启蓝牙 // 确保蓝牙在设备可以开启 if (mBluetoothAdapter == null || !

3.1K00

Android BlueToothBLE入门(二)——设备连接和通讯(附Demo源码地址)

微卡智享 01 目录及使用组件 整个Demo目录上图中已经做了说明,其中最核心是BlueToothBLEUtil类,这是把这个Demo中用到BLE蓝牙方法都放到这里了,因为中心设备(Client...一篇介绍过蓝牙技术联盟SIG定义UUID共用了一个基本UUID:0x0000xxxx-0000-1000-8000-00805F9B34FB。...,和判断是否有相关蓝牙权限写了一个函数调用 蓝牙权限 检测是否有相关权限 调用蓝牙API时先检测是否有对应权限 像扫描设备,连接设备时需要知道返回结果,用到了回调,那类中直接就是传入相磁...为0将禁用时间限制。(不设置则为无限广播时长) .setTimeout(Time) //设置广告类型是可连接还是不可连接。...let { it.disconnect() //调用close()后,连接时传入callback会被置空,无法得到断开连接时onConnectionStateChange

63130

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

而使用BLE库,我们可以直接通过蓝牙设备UUID进行连接(通过GATT服务),在当前应用内就能直接连接了。而不用通过系统设置。...描述符:描述符是描述特征已定义属性。例如,描述符可指定人类可读描述、特征可接受范围或特定于特征度量单位。 Service — 服务是一系列特征。...那么我们将会无法发现蓝牙设备。 也就是执行蓝牙扫描 API 无法得到任何结果(PS::Logcat 中错误日志会告诉你,要开启位置权限,否则无法扫描发现蓝牙设备)。 <!...-- 如果应用必须安装在支持蓝牙设备,可以将下面的required设置为true。...第二个传参autoConnect:是一个boolean对象,false代表直接连接到蓝牙设备。true代表在蓝牙设备可用时自动连接

3.1K20

Android BLE 快速上手指南

本文旨在提供一个方便没接触过Android低功耗蓝牙(Bluetooth Low Energy)同学快速上手使用简易教程,因此对其中一些细节不做过分深入探讨,此外,为了让没有Ble设备同学也能模拟与设备交互过程...-->获取服务,特征-->打开通知-->写特征-->读特征-->断开连接,通过这些步骤我们就能学会Android Ble 基本方法使用。...,返回0时代表操作成功,返回其他就是各种异常 //newState:当前连接处于状态,例如连接成功,断开连接等 //当连接状态改变时触发此回调 }...再次强调读、写、通知等这些GATT操作都只能串行使用,并且在执行下一个任务前必须保证上一个任务已经完成并且成功回调,否则可能出现后面的任务都阻塞无法进行情况。...如果大家需要了解更多更详细使用方法,这里给大家推荐2个开源ble库: Android-BLE-Library:NordicSemiconductor官方Android ble库。

2.4K20

蓝牙项目开发心得

3,写到mSCharacteristic没有转成十六进制字符串(二、4)导致写进去错误 五、扫描广播、连接、绑定 1,Android手机为central,GATT client;发射器为peripheral...,GATT server Central vs. peripheral:  中心设备和外围设备概念针对BLE连接本身。...GATT client:这两种角色取决于BLE连接成功后,两个设备间通信方式。两个设备通过BLE通信,首先需要建立GATT连接。...认证过程比较繁琐,BLE协议支持两节点保存认证安全密钥(一般是非易失性存储器中),以便于两节点下次连接后快速认证,这就是绑定技术 BLE蓝牙4.0经典问答【转】 - 逗不过奇葩 - 博客园  最清晰关于蓝牙...ble解答,适合初学者

1.7K90

Android蓝牙开发—经典蓝牙和BLE(低功耗)蓝牙区别

总结:BluetoothAdapter.startDiscovery在大多数手机上是可以同时发现经典蓝牙和Ble,但是startDiscovery回调无法返回Ble广播,所以无法通过广播识别设备,...不管是经典蓝牙还是低功耗蓝牙,绑定方法都是通用,可以调用相同绑定方法。 3. 建立连接 在建立连接方式,两者就千差万别了。...经典蓝牙:经典蓝牙建立连接方式实际就是Socket连接建立。只不过这里不是直接用Socket,而是BluetoothSocket。...(Characteristic_UUID)方法获得; (3)设置需要发送命令,调用BluetoothGattCharacteristic方法setValue(value)进行设置,其中value一般为...可以看到,想要实现BLE数据通信,步骤相当繁琐,这里只是做一个简单概念理解,如果想要获取到BLE从设备返回,还需要设置Notification,然后调用BluetoothGattreadCharacteristic

4.5K20

Android BlueToothBLE入门(一)——低功耗蓝牙介绍

这么长时间没更新文章,其实原因就三点: 原因一是工作事确实多,近一个月跑了17个城市,基本不是在客户现场就是去下一个地方飞机或高铁。...BLE只有在需要时才会连接,这样有效地减少了能耗。虽然BLE传输速度较低,但它能够实现实时数据传输和双向通信,非常适合传输小量数据。...扫描时有几个重点: 我们在系统中设置蓝牙中是无法扫描到广播,必须要在App中实现。...描述符 Descriptor 它定义就是描述 GattCharacteristic 已定义属性,比如指定可读属性,可接受范围等,比如为写 特征添加描述符。...,该方法是BLE连接核心方法 4 BluetoothGatt 核心类,此对象是对GATT协议封装,布尔类型参数表示是否断后重连。

59640

蓝牙项目开发流程

)这种大于十进制数127十六进制字节时由于byte范围为-128到127,输出结果为负数(byte最高为为符号位),显示在界面上是乱码,可以考虑用如下输出方式:下面也无法解决,因为有的ascii码对应字符本身系统就无法显示..., \\s表示 空格,回车,换行等空白符, \\w表示单词字符(数字字母下划线) +号表示一个或多个意思,所以... 30如何和BLE发射器连接前获取发射器广播信息 ble广播相关资料...获取广播数据相关资料 BLE 广播数据解析 - 推酷 Android获得ibeacon广播数据--BLE_Ibeacon - chencglt博客 - 博客频道 - CSDN.NET...答:是 43连多个ble设备 如何读取一次,我连接多个设备 rssi _百度知道 44服务一直在后台运行 停止当前服务:Process.killProcess(Process.myPid...-CSDN论坛-CSDN.NET-中国最大IT技术社区 关于用nexus 4 开发BLE应用过程,有时候会出现连接蓝牙设备时连不上,除非在设置里把蓝牙关调再重新打开蓝牙,然后再连设备才能连接,这是什么问题

3.5K100

BLE低功耗蓝牙与经典蓝牙(持续更新)

(每次最大传输20bit字节) 经典蓝牙(BT):经典蓝牙,泛指蓝牙4.0以下都是经典蓝牙,你还怀念通过蓝牙让音箱播放手机音乐么?经典蓝牙常用在语音、音乐等较高数据量传输应用场景。...;蓝牙读写都是通过characteristic属性来进行,通过Gatt进行扫描蓝牙和连接。...ProfileProfile 并不是实际存在于 BLE 外设,它只是一个被 Bluetooth SIG 或者外设设计者预先定义 Service 集合。...BLE技术是基于GATT进行连接与通信,GATT是一种属性传输协议,简单讲可以认为是一种属性传输应用层协议。结构图如下 ?...image 3.UUID:“GATT层”中定义所有属性都有一个UUID,UUID是全球唯一128bit号码数字,它用来识别不同特性。作用类似Soccket通信端口。

8K10

原 Data Access Compone

DAC缓存实体是DAC_INSTANCE类型,这包括了(还有其他数据)目标地址,数据大小和数据空间。当DAC数据时,它返回缓存对象数据地址作为宿主机地址。...这个转换操作符是PTR类型成员,这也是发生地方,如果DAC第一次在缓存中查找目标地址,他会读取目标地址读取已经DomainFile示例对象数据,然后写入到缓存,最后,返回之后宿主机地址...用法和他们外在行为和DPTR十分相似。自动透明。VPTR宏为带虚函数类生命了一个指针类型。这个特别的宏是必要。因为虚函数表本质是个隐式额外字段。...不能直接从这个地址数据,因为无法确定有多少数据要读取。...使用DAC正确地将从目标送到主机是很重要。从主机错误地使用目标地址 (反之亦然)会导致未映射地址。如果映射了错误地址, 则无法得到预期

97260

细数最新Android N安全改进

Android N中强制严格执行验证启动(Verified Boot)机制 : 在先前Android 6.0棉花系统中,如果你修改了启动代码,系统只会发出警告;而到了Android N这代系统中,如果开发者仍然这么做...抛弃弱加密Cryto Provide: 这实际也是针对数据加密重要举措。...去年棉花系统中,如果第三方SDK没有使用加密特性,开发者可以选择自动屏蔽这类SDK。...除此之外,升级后Network API还统一了所有设备证书认证机构(CA)存储,以后所有用户安装证书默认都不再是“可信”了。...所以这次谷歌限制了对Device Admin API访问——对用户密码修改进行限制,这对勒索软件而言应该是个悲剧。 应用无法再通过编程方式更改现有密码,所有设备管理应用也都可以卸载。

742100

低功耗蓝牙(BLE)攻击分析

但如果随机数生成器无法生成“足够强壮”随机数,那么即使最强加密协议也可能被破解,这同样也适用于BLE。因此,换句话来说就是BLE安全性实际掌握在其实施者手中。...hcitool hcitool利用了笔记本电脑中主机控制器接口与BLE设备进行通信以及执行读/写/更改操作。因此,hcitool可用于查找广播可用受害者BLE设备,然后连接后更改其。...我们可以尝试逐个读取所有句柄,直到出现读取错误提示。读取错误意味着特定句柄是写句柄(因为写句柄是无法读取)。或者,你也可以使用像nrf connect这样应用程序为你自动找出写句柄。 ?...上图中句柄0x000bUUID和nrf连接匹配。 ? 连接到灯泡后,我们可以将随机写入不同characteristics。在大多数情况下,写入随机无法按预期工作。...第6步:打开nRF Connect app并连接BLE灯泡。 ? 第7步:连接后,写入payload56b0306000f0aa。点击发送后,灯泡颜色将会发生改变。 ?

4.6K61
领券