iOS - iOS 设备和外部配件 (BluetoothWatch) 之间 BLE 数据传输的 MTU 大小

2024-04-24

我正在为使用 BLE(CoreBluetooth)的蓝牙手表开发 iOS 应用程序(Objective-C),并且我的手表具有 GATT 蓝牙配置文件,iOS 应用程序最低支持来自 iOS7。

我想知道如何使用 Core Bluetooth 框架在 iOS 设备和外部设备之间进行数据传输。

实际上我正在研究我的蓝牙手表的固件升级部分, 每当收到任何更新时,我的 iOS 应用程序都会从​​网络服务获取固件代码(二进制数据),然后它将数据发送到蓝牙手表。

我搜索并得到了一个Apple示例代码: BTLE_传输:https://developer.apple.com/Library/ios/samplecode/BTLE_Transfer/Introduction/Intro.html https://developer.apple.com/Library/ios/samplecode/BTLE_Transfer/Introduction/Intro.html

我想示例代码在我的情况下没有用,因为它具有中央和外围代码并在两个 iOS 设备之间传输数据。

除了这个 BLE 数据传输示例代码之外,还有其他方法吗?或者仅使用此示例代码就可以?(如果可以,怎么办?)

UPDATED:

我的设备有 1 个服务,其中有 2 个特征,一个用于读取,一个用于写入。

根据我使用写入特性的工作流程:

  1. 使用 WRITECHARACTERISTIC 我正在以块的形式发送固件代码的数据

[MYDEVICEINSTANCE writeValue:NSDATACHUNK 对于特性:WRITECHARACTERISTIC 类型:CBCharacteristicWriteWithResponse];

  1. 并在委托方法中“didWriteValueForCharacteristic“我通知读取特征的方法如下

[MYDEVICEINSTANCE setNotifyValue:TRUE forCharacteristic:READCHARACTERISTIC];

  1. 这称为“didUpdateNotificationStateForCharacteristic“我正在检查里面的委托方法是否为 READCHARACTERISTIC正在通知或者不然后我打电话
[MYDEVICEINSTANCE readValueForCharacteristic:READCHARACTERISTIC];
  1. 哪个调用委托方法“didUpdateValueFor 特征“我正在使用以下方式阅读回复READCHARACTERISTIC.value

我的查询:

我想确认Apple 允许的 MTU 最大限制对于来自 iOS 应用程序的外部设备通信,我在步骤 1 中通过发送开始NS数据块从 iOS 应用程序使用 BLE Watch写值

我已经测试过我可以发送 NSDATACHUNKMTU=255尺寸和 BLE 手表接收成功相同。

我在“苹果示例代码:BTLE_Transfer“他们正在使用MTU=20但是,我猜示例代码用于 iOS 设备到 iOS 设备的通信(如果我错了,请纠正我)

所以,如果我使用MTU=250在我的 BLE 通信 iOS 应用程序中,苹果是否有可能拒绝我的应用程序?

或者有谁可以说Apple 允许的 MTU 最大限制是多少?

每一个建议都值得赞赏,

提前致谢


您可以使用任何您想要的 MTU 大小(最多 512)。

连接将使用的值始终是您和他们之间的最小值。

因此,如果他们想要使用等于 50 的 MTU,那么如果您的 MTU 低于 50,则会使用该值;否则,您选择的 50 以上的值都是毫无意义的,因为会选择 50。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iOS - iOS 设备和外部配件 (BluetoothWatch) 之间 BLE 数据传输的 MTU 大小 的相关文章

  • 以弯曲格式显示文本

    我正在寻找以曲线格式绘制一些文本 我使用哪个控件并不重要 UITextField UILabel or UITextView 我只想显示如图所示的文本 仍在寻找解决方案 请帮忙 查看此链接 https nodeload github com
  • NSTimer 不触发选择器

    在带有 ARC 的 ios5 0 中 在我的 rootviewcontroller 中 我调用由应用程序委托持有的安全管理器对象中的方法 在该方法中 我设置计时器如下 NSTimer timer NSTimer scheduledTimer
  • 在视图之间传递核心数据实体变量

    我无法理解如何在视图之间使用核心数据实体变量 为了更好地理解我的问题是什么 我的代码如下 View A 基本上 您必须将完整预算实体或相关预算实体的 ID 从视图 A 传递到视图 B 由于不知道您的应用程序的视图层次结构和逻辑 我假设您选择
  • XCode 4.5 给我“SenTestingKit/SenTestKit.h”文件未找到,但适用于 4.4.1

    我刚刚安装了 XCode 4 5 它在我现有的项目之一上给了我一个 SenTestingKit SenTestingKit h 文件未找到错误 此错误仅发生在 XCode 4 5 中 但它在 4 4 1 上编译正常 我已经检查过SenTes
  • AWS S3 公共对象与私有对象?

    回到 S3 我的存储桶中有图像的 URL 我将在我的应用程序中呈现这些图像 但它们被设置为私有 当我尝试单击该链接时 它显示 访问被拒绝 当我将链接的设置更改为公共时 它会通过 但是我读到公共访问并不是最安全的事情 所以这本质上是一个由两部
  • ios - 在哪里放置 s.static_framework = true

    我在 CocoaPods 中的级别为 0 当我使用pod install有一个错误说 The Pods App target has transitive dependencies that include static framework
  • 将 UIButton 中的图像缩放到 AspectFit?

    我想将图像添加到 UIButton 并且还想缩放图像以适合 UIButton 使图像变小 请告诉我该怎么做 这是我尝试过的 但它不起作用 将图像添加到按钮并使用setContentMode self itemImageButton setI
  • ios7 navigationController PushViewController 动画错误

    看来我在 navigationController PushViewController 方法中发现了一个错误 为了重新创建它 我采用了示例主详细信息项目并对 didSelectRow method void tableView UITab
  • iOS - 当 UIView 移动时将 UITextField 移动到不同的位置

    我有一个主 UIView 它通过开关向上移动 我有这个工作 那里没有问题 现在 UIView 当向下时 占据屏幕的大约一半 当它向上推时 它会显示底部 40px 在 UIView 中 当它处于向下状态时 它有一个 UITextField 并
  • 适用于 IOS 和 Android 的支付网关 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在开发一个应用程序 用户必须在澳大利亚餐馆通过应用程序 android ios 付款 有两种付款方式 通过 PayPal 或 Visa
  • 从命令行调试 iOS 应用程序构建

    我正在通过命令行构建 iOS 应用程序 但在调试它时遇到问题 如果我使用 XCode 进行构建 它会让我在设备上 构建和调试 而不会出现任何问题 但现在 我不知道如何使用 gdb 在设备上启动它并逐步执行它 如果我尝试 添加自定义目标 可执
  • UIDocumentInteractionController 阻止“打开方式”表中的空投

    在我的应用程序中 我允许用户通过 Instagram 分享照片 这需要使用 UIDocumentInteractionController 如果手机支持 则会自动检测空投 如何将其从 打开方式 操作表中删除 即使我使用 UIActivity
  • 为什么我不能在 Realm 属性上使用 private

    我正在尝试在 RealmSwift 中存储一个枚举案例 但 Realm 不支持枚举 本文 https medium com it works locally persisting swift enumerations with realm
  • 推入 UINavigationController 时隐藏 FBFriendPickerViewController 导航栏

    介绍一个实例FBFriendPickerViewController using presentViewController animated completion 非常简单 该类似乎是针对该用例的 但是 我想推送一个实例FBFriendP
  • 添加自定义过渡会导致 xib 加载错误的屏幕尺寸

    我正在尝试向具有 xib 的 UIViewController 添加自定义过渡 我尝试了几种方法 但它们都有相同的问题 视图显示的屏幕尺寸错误 我当前的示例基于以下教程 使用 Swift 在 iOS 中自定义 UIViewControlle
  • 检测 AvPlayer 何时切换比特率

    在我的应用程序中 我使用 AVPlayer 通过 HLS 协议读取一些流 m3u8 文件 我需要知道在流会话期间 客户端切换比特率多少次 我们假设客户端的带宽正在增加 因此客户端将切换到更高比特率的段 AVPlayer能检测到这个开关吗 T
  • 当强制退出/向上滑动以终止 iOS 应用程序而不点击横幅/警报时,如何获取推送通知有效负载?

    我正在构建一个应用程序来处理从 Parse 推送的通知 并尝试创建通知历史记录功能 我已经成功启用了后台模式 因此当应用程序在后台运行时 应用程序可以通过以下方式很好地获取有效负载application didReceiveRemoteNo
  • NVActivityIndi​​catorView 仅适用于特定视图

    我正在使用这个库https github com ninjaprox NVActivityIndi catorView https github com ninjaprox NVActivityIndicatorView用于显示加载指示器
  • UIWebView Bug:-[UIWebView cut:]:无法识别的选择器发送到实例

    In the UIWebView 如果包含文本的输入元素具有焦点 并且按下按钮导致输入失去焦点 则随后双击输入以重新获得焦点并从出现的弹出栏中选择 剪切 或 复制 或 粘贴 会导致这UIWebView因错误而崩溃 UIWebView cut
  • 如何反转 CGPath 的点顺序

    我想画一个圆圈 并用它打出字母 为此 我需要顺时针抚摸圆圈 逆时针抚摸字母 这一切都很好 但是当我使用 Core Text 获取字母路径时 我不知道如何从本质上反转该路径 不是镜像或旋转或任何东西 这很简单 我希望点笔画顺序是逆时针的 这实

随机推荐

  • 银光。如何将 InlineUIContainer 内容中的文本与 RichTextBox 中的外部文本对齐

    任务 使 InlineUIContainer 的文本内容与外部文本内联 InlineUIContainer 内容的标准行为是当底部边缘与外部文本内联时 可以使用 RenderTransform 移动 InlineUIContainer 的位
  • CSS 文本对齐延迟与宽度动画

    我正在尝试将文本设置为动画 使其在页面加载时从左到右显示 这只需简单地设置即可完成 keyframes从 0 过渡max width至 100 然而 我的文本对齐设置似乎仅在动画完成后才应用 我只想让文本内容本身显示出我想要的位置 并假设我
  • Django ORM和链式select_相关

    如何使用 Django ORM 执行此查询 它是一个多重联接 从一个表链接到另一个表 关于 select 相关的 Django 文档 https docs djangoproject com en 2 2 ref models querys
  • 如何在一页上放置多个jssor滑块?

    当我尝试在页面上放置多个滑块时 只有第一个滑块有效 有什么办法可以让它们同时工作吗 搜索堆栈溢出后我发现了这个 请按以下方式初始化多个实例 var jssor slider1 new JssorSlider slider1 containe
  • 从另一个数据帧中减去一个数据帧,不包括第一列 Pandas

    我必须使用相同列的数据框 我的任务应该是从 df nap 中减去 df tot 而不触及第一列 A 最简单的解决方案是什么 谢谢你 import numpy as np import pandas as pd df tot pd DataF
  • 在仪表板标题中间对齐可变长度的文本

    我使用闪亮的仪表板包 标题需要有标题 文本和徽标 标题应位于左侧 文本应位于标题的中间 中心 徽标应位于右侧 仪表板侧边栏还有两个过滤器 选择输入 中间的文本显示用户选择 因此文本的长度根据不同的选择而不同 我没有 css 背景 也不知道如
  • 如何将参数传递给 DLL 初始化(例如,通过 LoadLibrary 加载时)?

    如何将参数传递给通过 LoadLibrary 加载的 DLL 的初始化函数 有可能吗 也就是说 无需求助于某种导出函数或共享内存 没有直接的方法 最简单的可能是通过环境变量 它们可以在调用之前轻松设置LoadLibray with sete
  • NgRx - 状态如何组合和初始化

    当我们初始化 Store 时 StoreModule provideStore r1 Reducer1 r2 Reducer2 我们确实将减速器传递到 Store 进行存储 但我们实际上从未将初始状态传递给存储 除了在减速器函数中定义它 c
  • 有没有办法覆盖动作脚本运算符,特别是我想覆盖等于运算符

    是否可以覆盖 equals 运算符 即 对于可以通过 2 个或更多字段匹配来确定相等性的客户类别 如果您的意思是重载 作为 equals 的同义词 那么您不能 因为 ActionScript 不提供运算符重载 只需为您的类编写一个 equa
  • 收到 SIGNAL 11 错误

    再会 我有一个关于使用 SDK 开发 Android 应用程序的问题 我们的应用程序在 Android 2 1 API Level 7 下遇到问题 至少在 Android 2 1 update1 模拟器和 Motorola Droid X
  • 在 post-command-hook 中,这个用于kill-word的命令已经以某种方式变成了kill-region

    In my post command hook回调 当我这样做时kill word the this command var is kill region 并不是kill word正如预期的那样 我想那是因为kill word uses k
  • Swift 3.0 将图像写入目录

    我有一个简单的ImagePicker供用户选择或拍摄个人资料照片 我想保存这个image to the Home Directory方便以后加载 问题是未设置图像类型 Save Image PPimagePicked image let i
  • Spark 2.0 弃用了“DirectParquetOutputCommitter”,没有它如何生活?

    最近 我们从 HDFS 上的 EMR gt S3 上的 EMR 启用了一致视图的 EMRFS 迁移 我们意识到 Spark SaveAsTable 镶木地板格式 写入 S3 的速度比 HDFS 慢约 4 倍 但我们发现使用 DirectPa
  • 在 MySQL 中的分组列中搜索?

    我需要创建一个男人的数据库 男人可以有一个或多个属性 每个男人的属性都有一个特定的值 听起来很简单吧 好吧 继续阅读 因为这个问题有点不可能 5 天处理它 s 所以我创建了这 3 个表 CREATE TABLE guy id int 11
  • Int32 和 UInt32 有什么区别?

    有什么区别Int32 and UInt32 如果它们与容量范围能力相同 问题是出于什么原因UInt32被创造了 我应该什么时候使用UInt32代替Int32 UInt32 不允许负数 从MSDN http msdn microsoft co
  • 修复了滚动 html 文档时的 div

    我正在寻找一个 jquery 插件 可以让我实现这种效果 静态向下滚动 http www bnet com blog drug business it 8217s a trap congress wants to see j j ceo s
  • jQuery hide() div 直到完全加载

    我正在为我的博客使用选项卡式特色帖子 如何实施div latest featured will hide then show 内容完全加载后它会回来吗 document ready function Default Action tab c
  • 从 pod 连接到其他 pod

    基本上 我有一个部署 它创建了 3 个自动扩展的容器 PHP FPM NGINX 和包含应用程序的容器 所有这些都设置了机密 服务和入口 该应用程序还在 PHP FPM 和 NGINX 之间共享项目 因此一切都已设置完毕 由于我想使用 K8
  • M1 Apple Silicon Mac 上的 Dynamodb 本地设置

    我使用 dynamodb 进行了本地设置https docs aws amazon com amazondynamodb latest developerguide DynamoDBLocal DownloadingAndRunning h
  • iOS - iOS 设备和外部配件 (BluetoothWatch) 之间 BLE 数据传输的 MTU 大小

    我正在为使用 BLE CoreBluetooth 的蓝牙手表开发 iOS 应用程序 Objective C 并且我的手表具有 GATT 蓝牙配置文件 iOS 应用程序最低支持来自 iOS7 我想知道如何使用 Core Bluetooth 框