我正在创建一个应该连接到自定义BLE设备的iOS应用程序。我需要iOS应用程序发送2个HEX命令,一个用于启用设备的一部分,另一个用于请求数据。
iOS中有没有办法发送/接收自定义HEX数据,除了使用服务&特性
答案 0 :(得分:4)
不,这是不可能的,但其原因不是iOS,而是“服务”和#39;和'特点'只是BLE协议定义的一部分。
官方规格: https://developer.bluetooth.org/TechnologyOverview/Pages/BLE.aspx
通用属性配置文件
最新的蓝牙规范使用基于服务的架构 基于属性协议(ATT)。所有低能量通信 通过通用属性配置文件(GATT)进行。一个应用程序 或其他配置文件使用GATT配置文件,以便客户端和服务器可以 以结构化的方式进行交互。
服务器包含许多 属性和GATT配置文件定义了如何使用属性 发现,阅读,写入和获取适应症的协议。这些 功能支持基于服务的体系结构。使用这些服务 如配置文件规范中所定义。 GATT使您可以公开 配置文件规范中定义的服务和特征。
答案 1 :(得分:1)
另一个答案是意外的,但出于错误的原因。
当然,在BLE中可以发送任何类型的数据,而不仅仅是GATT。只是 iOS强迫您使用GATT 。其他任何东西都没有iOS API。所以,是的, iOS 阻止您这样做。
如果你不被迫与GATT合作,还会有其他选择:
答案 2 :(得分:0)
是的,您可以通过ble设备发送数据。我已经实施了。通过实现外围对象的writevalue方法,可以根据ble设备的给定特性发送数据。同样,为了从BLE设备中获取数据,您可以使用外围对象的readValue方法。数据将通过蓝牙框架的更新委托方法启动