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

BLE:写入特征时,获取onCharacteristicWrite中的状态为133

BLE是蓝牙低功耗(Bluetooth Low Energy)的缩写,它是一种无线通信技术,旨在为低功耗设备提供短距离通信。BLE广泛应用于物联网、智能家居、健康监测、智能穿戴设备等领域。

在BLE中,特征(Characteristic)是数据的基本单元,它包含了一个值和一组属性。写入特征(Write Characteristic)是指将数据写入到BLE设备的特征中。当写入特征时,获取onCharacteristicWrite中的状态为133表示写入操作失败,具体原因是GATT(Generic Attribute Profile)错误。

GATT错误码133表示GATT_ERROR(GATT错误),这是一个通用的错误码,表示在GATT操作中发生了错误。可能的原因包括连接中断、特征不可写、写入数据长度超过了特征的最大长度等。

对于这种情况,可以采取以下步骤进行排查和解决:

  1. 确保设备处于连接状态,如果连接已断开,需要重新建立连接。
  2. 检查特征的属性,确保该特征是可写的。可以通过查阅设备的文档或者使用BLE调试工具进行确认。
  3. 检查写入的数据长度是否超过了特征的最大长度限制,如果超过了限制,需要进行数据截断或者分包发送。
  4. 如果以上步骤都没有解决问题,可以尝试重启设备或者重新初始化BLE连接。

腾讯云提供了一系列与BLE相关的产品和服务,例如腾讯云物联网平台(IoT Explorer),它提供了完善的物联网解决方案,包括设备管理、数据采集、数据存储和数据分析等功能。您可以通过以下链接了解更多信息: https://cloud.tencent.com/product/iotexplorer

请注意,以上答案仅供参考,具体解决方法可能因具体情况而异。在实际应用中,建议根据具体的开发环境和设备特性进行调试和排查。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android BLE 快速上手指南

-->获取服务,特征-->打开通知-->写特征-->读特征-->断开连接,通过这些步骤我们就能学会Android Ble 基本方法使用。...,返回0代表操作成功,返回其他值就是各种异常 //成功获取服务触发此回调,“获取服务,特征”一节会介绍 } @Override public void...( UUID.fromString(SampleGattAttributes.CLIENT_CHARACTERISTIC_CONFIG)); //获取特征写入类型,用于后面还原 int...parentWriteType = characteristic.getWriteType(); //设置特征写入类型默认类型 characteristic.setWriteType(BluetoothGattCharacteristic.WRITE_TYPE_DEFAULT...)蓝牙能正常断开,只是在onConnectionStateChange我们就收不到newStateBluetoothProfile.STATE_DISCONNECTED状态回调,因此,可以在收到断开连接回调后在关闭

2.4K20

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

背景 在学习BLE过程,积累了一些心得DEMO,放到Github,形成本文。感兴趣同学可以下载到源代码。...你可以在bluetooth.org 找到一个目前支持基于GATT配置文件和服务列表。 角色和责任 以下是Android设备与BLE设备交互角色和责任: *中央 VS 外围设备。...="true"/> 代码判断手机是否支持BLE特性: // 使用此检查确定BLE是否支持在设备上,然后你可以有选择性禁用BLE相关功能 if (!...当这个特征数据发生变化(接收到数据了),会触发 回调方法 onCharacteristicChanged 方法。我们在这个回调方法读取数据。...写入数据,我们需要先获得特征特征存在于服务内,一般在发现服务 onServicesDiscovered ,查找到特征对象。

3.1K00

MASA MAUI Plugin 安卓蓝牙低功耗(二)蓝牙通讯

我们使用移远FC410举例 通过nRF connect工具可以查看设备配置,该设备有一个前缀FFFF主服务,该服务下有一个前缀FF01特征,该特征具有通知Notify 和写入Write两种属性...换句话说我们可以通过这个特征给设备发送数据,而且可以通过订阅该特征值变化事件,来获取设备通过蓝牙返回信息。与 BLE 设备交互第一步便是连接到 GATT 服务器。...在我们向设备特征值发送数据,会触发OnCharacteristicWrite方法,方法内部触发我们自定义CharacteristicWrite。...写入蓝牙指令 官方文档示例没有给出特征写入示例,这里我们自己实现。...、写入数据、打开通知监听,最后还剩一个就是监听特征变化,某个特征启用通知后,如果远程设备上特征发生更改(我们收到消息),则会触发 onCharacteristicChanged() 回调: JAVA

2.1K20

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

当一个BLE设备(称为客户端)需要获取另一个BLE设备(称为服务器)上数据,可以使用Ble Read操作。客户端向服务器发送读取请求,并等待服务器返回所请求数据。...Ble Write(带回复写操作):当一个BLE设备(称为客户端)想要向另一个BLE设备(称为服务器)发送数据,可以使用Ble Write操作。...一、概念 Ble Enable Notify是指在蓝牙低功耗(BLE)通信中使能通知功能操作。当设备之间建立了蓝牙连接后,设备可以通过特征(Characteristic)来交换数据。...这样可以实现数据异步传输,一旦数据发生变化,发送方会自动发出通知,接收方就可以及时获取到最新数据。在BLE开发,通常需要通过操作特征属性来使能或禁用通知功能。...我们再看一下控制台日志   可以看到在执行写入动作成功之后,就收到了设备所回复特征值数据,然后再是收到写入成功日志打印。

1K30

《Android BLE 开发》--初学者

BLE Tool》也是我一个安卓项目,因为作者学习安卓加开发只用了10天时间,目前只是把所有接口打通了,只提供如何怎么实现。有不对地方,大家多指点。开发之前,最好了解一下BLE通信原理。...第一步:判断设备是否支持BLE功能 第二步:通过蓝牙管理器获取蓝牙适配器 第三步:判断设备是否打开蓝牙 在MainActivity.java添加以下代码: public boolean initialize...读特征函数实现,在MainActivity.java添加以下代码: public void readCharacteristic(BluetoothGattCharacteristic characteristic...写特征函数实现,在MainActivity.java添加以下代码: public boolean writeCharacteristic(BluetoothGattCharacteristic...特征通知函数实现,在MainActivity.java添加以下代码: public void setCharacteristicNotification(BluetoothGattCharacteristic

85820

蓝牙API介绍及基本功能实现

adapter.getState();//获取本机蓝牙状态 通过监听BluetoothAdapter.ACTION_STATE_CHANGED监听蓝牙状态改变 蓝牙重命名/获取本机蓝牙名 mAdapter.setName...(mContext, endTimestamp); 这是源码实现方案,但是BluetoothAdapter.setScanMode()没有办法去调用,只能利用反射 获取已配对设备列表 List<BluetoothDevice...device.createInsecureRfcommSocketToServiceRecord(MY_UUID); 获取到socket后可以获取到输入输出流,这里uuid可以在网页uuid生成器在线生成...,remotedevice和本机蓝牙设备uuid必须相同 TWO,BLE低功耗蓝牙 获取蓝牙适配器步骤同上,扫描ble设备方法如下: //开启蓝牙扫描 mBluetoothAdapter.startLeScan...Android蓝牙BLE低功耗相关简单总结 鉴于多人私信我要蓝牙demo,索性直接上传资源,我整理了一篇低功耗相关,连接设备并读取数据,附上demo下载地址,供大家参考 http://download.csdn.net

1.4K10

HarmonyOS学习路之开发篇—网络与连接(蓝牙开发 二)

BLE扫描和广播 场景介绍 通过BLE扫描和广播提供开放能力,可以根据指定状态获取外围设备、启动或停止BLE扫描、广播。...获取扫描过滤器,过滤器不使用过滤器扫描,然后调用startScan()开始扫描BLE设备,在回调获取扫描到BLE设备。...(int status)获取外围设备支持服务和特征值,并根据UUID判断是什么服务。...根据获取服务和特征值,调用read和write方法可以读取或者写入对应特征值数据。...,对端RSSI值rssi } } } BLE外围设备数据管理 场景介绍 BLE外围设备作为服务端,可以接收来自中心设备(客户端)GATT连接请求,应答来自中心设备特征值内容读取和写入请求

51410

Android 低功耗蓝牙开发(数据交互)

获取到Gatt服务,然后通过写数据特性UUID从服务获取写数据特性,这里UUID值请根据自己实际情况填写,不知道就问硬件工程师。...例如0102,这对于我这个设备来说是一个切换模式指令,这条指令不需要响应,那么在哪里确认这个指令写入到了设备呢?通过onCharacteristicWrite。 先修改一下这个回调方法内容。...收到数据   如果你需要收到数据,那么就需要使用有响应设置,这里设置true。 当设备特性改变 我这里打印一下,然后运行。...运行一下看控制台打印了什么 都是1 就代表1M发送和接收速率,那么你也可以改成2M,可以这么做,当我读取到速率1M就请求2M速率。...它们在不同时候使用,由于获取特性和描述符需要一个参数,因此你需要在有这个参数时候去调用它,比如当写入特性回调被触发, 再比如特性改变

1.9K30

BLE低功耗蓝牙开发相关概念问题记录

关于ble通信demo可以参考蓝牙API介绍及基本功能实现 Ble概念相关 ble对于数据传输有一个字节上限制,默认情况下是20个字节,但并不是不可修改。...同样,ble在属于传输对于每个包之间时间间隔也有一定限制,大多数从机连接时间间隔7.5ms–4s(以1.25ms一个单位,也就是6-0x0C80个单位)。...换言之,获取信息客户端提供信息是服务器 主机可以是客户端也可以是服务器端,同样从机可以做客户端也可以做服务器端 BLE协议和协议栈:协议指的是一种通信标准。...主机开始发送数据到从机至下一次主机开始发送数据到从机之间时间间隔。主从机之间每次通信都是一个连接事件(但不同于第一次从机处于广播状态下主机连接从机)。...方法(可以进行下一次写数据) 主机被动获取到数据(从机通过notify方法发送数据),当监听到有数据过来时会触发 onCharacteristicChanged方法(但是要想该方法回调,必须在主机端程序要监听

2.3K60

物联网来了,你还不会蓝牙开发?

安卓4.3(API 18)BLE核心功能提供平台支持和API,App可以利用它来发现设备、查询服务和读写特性。相比传统蓝牙,BLE更显著特点是低功耗。...2 原生API详细讲解 在BLE协议,有两个角色,周边(Periphery)和中央(Central);周边是数据提供者,中央是数据使用/处理者,一个中央可以同时连接多个周边,但是一个周边某一刻只能连接一个中央...方法回调给用户,从参数获取到回调回来数据。...,当收到onConnectionChanged()方法,说明蓝牙连接状态已经改变,则只需要判断BleDevice状态即可,当收到onServicesDiscovered()回调,说明已经搜索到蓝牙服务...,这时可以根据自己需求去设置通知Notify,如下图: 根据服务UUID来进行过滤,然后根据服务获取特征UUID,然后在进行过滤,然后再从特征取出通知UUID,这时设置通知true就可以了

95920

蓝牙项目开发心得

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

蓝牙项目开发流程

BLE开发之Android手机与BLE终端通信 - hellogv专栏 - 博客频道 - CSDN.NET 置顶 Android 蓝牙4.0BLE开发实现对蓝牙写入数据和读取数据...既是位运算符又是逻辑运算符,&,|两侧可以是int,也可以是boolean表达式,当&,|两侧是int,要先把运算符两侧数转化为二进制数再进行运算 &按位与:两个操作数位都为1,结果才...listen-安卓设备如何监听蓝牙连接状态 51自定义监听器类 android 自定义监听器Listening - 雾柳花前 - 博客园 52弹出对话框 Android创建对话框...应用过程数据写入后自动断开问题-CSDN论坛-CSDN.NET-中国最大IT技术社区 60如何判断两个时间相差多少天,参数String JAVA 比较两个日期相差天数 - shiyuezhong...:15:44.000时间格式 GMT时间 Android系统时间制式获取(24小制式/12小制式)及UTC与本地时间转换 78、批量插入sqlite数据 androidSQLite

3.5K100

HarmonyOS学习路之开发篇—网络与连接(蓝牙开发 一)

通常发送广播外围设备作为服务端,负责扫描中心设备作为客户端。 HarmonyOS低功耗蓝牙提供功能有: BLE扫描和广播:根据指定状态获取外围设备、启动或停止BLE扫描、广播。...BLE中心设备与外围设备进行数据交互:BLE外围设备和中心设备建立GATT连接后,中心设备可以查询外围设备支持各种数据,向外围设备发起数据请求,并向其写入特征值数据。...BLE外围设备数据管理:BLE外围设备作为服务端,可以接收来自中心设备(客户端)GATT连接请求,应答来自中心设备特征值内容读取和写入请求,并向中心设备提供数据。...isBtDiscovering​() 检查蓝牙是否在扫描设备。 getProfileConnState​(int profile) 获取本机蓝牙profile对其他设备连接状态。...如果想要获取扫描到设备,必须在注册广播继承实现CommonEventSubscriber类onReceiveEvent(CommonEventData data)方法,并接收EVENT_DEVICE_DISCOVERED

60040

一个Android 蓝牙GATT数据读写小应用

实现一个Android APP主要需求: 1、APP连接蓝牙转以太网转接板给底板配置广播信息; 2、广播板状态能通过蓝牙转接板透传给APP; 蓝牙搜索,发现这些之前一个app都做过,但是读写数据没有做...,关键点是: 1、GATT连接; 2、服务特征UUID/读特征UUID 配置特征UUID/写特征UUID,这几个特征UUID 最好是找厂家确认。...for(BluetoothGattCharacteristic characteristic : service.getCharacteristics()){ //获取到相应服务...= selectBleDevice.connectGatt(mContext, false, mGattCallback); } //关闭蓝牙和Gatt输入通道 避免出现Gatt 133...for(BluetoothGattCharacteristic characteristic : service.getCharacteristics()){ //获取到相应服务

16610

QT应用编程: 编写低功耗BLE蓝牙调试助手(Android系统APP)

本软件为了方便工程师在开发产品过程调试BLE蓝牙,将蓝牙连接过程信息全部输出到屏幕上,方便调试错误。...检查蓝牙状态,用于设置按钮初始状态*/ /*3.1 检查蓝牙是否开启*/ if(localDevice->hostMode() == QBluetoothLocalDevice::HostPoweredOff...,就是蓝牙Uuid,引用一下百度: 在蓝牙,每个服务和服务属性都唯一地由"全球唯一标识符" (UUID)来校验。...他提供了分别利用String和16位或32位数值来创建类构造函数,提供了一个可以比较两个UUID(如果两个都是128位)方法,还有一个可以转换一个UUID一个字符串方法。...\n"); } /*服务状态改变发出此信号。newState也可以通过state()。

3.4K30

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

>蓝牙类别与简介 BLE设备分单模和双模两种,双模简称BR,商标Bluetooth Smart Ready,单模简称BLE或者LE,商标Bluetooth Smart。...蓝牙堆栈可提供实现蓝牙低功耗 (BLE) 功能,在 Android 8.0 ,原生蓝牙堆栈完全符合蓝牙 5.0 要求。...数组,通过serviceuuid获取需要service,拿到service后通过特征uuid获取所要特征Characteristic,每个特征都含有一个value和多个对value描述Descriptor...通过操作特征可以读取和写入数据。 //1....Peripheral(外设设备,被动连接一方) Peripheral主要理解硬件外设,提供数据用。在开发APP很少关心这个,因为大家都是直接拿着硬件来调试

8.1K10

Android低功耗蓝牙BLE开发小结

该框架定义了服务过程,格式及其特征,包括发现、读取、写入、通知和指示特征,以及配置特征广播。...BLE应用权限 涉及到蓝牙相关开发需要在AndroidManifest.xml声明权限,其中位置权限在扫描LE设备需要使用。...Android BLE相关类 BluetoothAdapter:Android设备蓝牙适配器,可执行基本蓝牙任务,如启动、停止设备发现,查询已配对设备,获取蓝牙适配器状态,使用MAC地址实例化蓝牙设备类...connectGatt方法获取到BluetoothGatt对象之后,设备将处于正在连接状态(可能会连接失败),当设备处于已连接状态,才可进行后续操作。...读写、设置通知操作都需特征有对应属性支持才能执行成功。 注意:如果开发中使用是虚拟BLE设备,还需先设置虚拟设备需要通知特征Descriptor开启通知,后续才会收到通知事件。

5.6K561

蓝牙BLE技术

当然,续航里程越高,电池消耗就越多,所以在调整你设备以适应更高续航里程要小心。 蓝牙BLE组成 BLE由三个主要构建模块组成:应用程序、主机和控制器。...这是节省电能关键好处之一——两个设备可以通电、交换数据,然后进入休眠状态,直到下一次连接事件。 BLE不同层次和他们目的 BLE和许多其他无线技术一样,由许多层组成。...2、分段和重组:它从上层获取大量数据包并将其分解适合发送端BLE数据包27字节最大有效载荷大小块,反之亦然,它接收多个已经分段并重新组合数据包将它们分成一个大数据包然后发送到上层 L2CAP...属性句柄只是用于访问属性值标识符,而UUID用于指定值数据类型和性质。客户端发送适当写入或读取请求,服务器根据它们进行响应。...当客户端想要从服务器读取或写入属性值,它会使用句柄向服务器发送读取或写入请求。然后,服务器使用属性值或确认响应进行响应。在读取操作情况下,客户端必须解析该值并基于该属性UUID理解数据类型。

2.2K20
领券