我正在创建一个iOS应用程序,应该连接到自定义BLE设备。我需要让iOS应用程序发送两个十六进制命令,一个是启用设备的某个部分,另一个是请求数据。
除了使用服务和特性之外,在iOS中是否有其他方法可以发送/接收自定义HEX数据?
我正在创建一个iOS应用程序,应该连接到自定义BLE设备。我需要让iOS应用程序发送两个十六进制命令,一个是启用设备的某个部分,另一个是请求数据。
除了使用服务和特性之外,在iOS中是否有其他方法可以发送/接收自定义HEX数据?
不,这是不可能的,但原因并不是iOS的问题,而是“服务”和“特征”只是BLE协议定义的一部分。
官方规范: https://developer.bluetooth.org/TechnologyOverview/Pages/BLE.aspx
通用属性配置文件
最新的蓝牙规范使用基于服务的体系结构,基于属性协议(ATT)。所有低功耗通信都在通用属性配置文件(GATT)上进行。应用程序或另一个配置文件使用GATT配置文件,以便客户端和服务器可以以结构化方式交互。
服务器包含多个属性,GATT配置文件定义了如何使用属性协议进行发现、读取、写入和获取指示。这些功能支持基于服务的体系结构。服务按照配置文件规范中定义的方式使用。GATT使您能够公开在配置文件规范中定义的服务和特征。
是的,您可以通过蓝牙设备发送数据。我已经实现了。通过实现外围对象的writevalue方法,在给定的蓝牙设备特征上发送数据。而且,要从BLE设备获取数据,您可以使用外围对象的readValue方法。数据将在蓝牙框架的更新委托方法中开始。