使用蓝牙 LE 在 iOS 和 Android 之间进行通信

2024-01-10

我有一个工作应用程序,使用 CoreBluetooth 在 iPad(中央)和 iPhone(外围)之间进行通信。我有一项服务有两个特点。我的 Nexus 7 运行最新的 Android 4.3,支持 BTLE。 Android 加入 BTLE 潮流有点晚了,但看起来他们的做法与 iOS 的做法类似,最初他们只支持充当中央设备,后续版本中将提供外围模式。我可以加载示例 Android BTLE 应用程序并浏览附近的外围设备。将我的 iPhone 广告作为外围设备后,我可以在 Android 端的附近外围设备列表中看到 CBAdvertisementDataLocalNameKey 的值。我可以连接到 iPhone,连接后蓝牙符号从浅灰色变为黑色。连接总是持续 10 秒,然后断开。在 Android 方面,我应该会在连接后立即看到可用服务和特征的列表。我已经证明 Android 代码设置正确,因为我可以将其连接到我拥有的 TI CC2541DK-SENSOR 硬件,并且在连接到它时会列出所有服务和特性。

过去几天我一直在解决这个问题,但没有成功。问题是我无法确定哪个设备遇到错误并因此导致断开连接。在连接阶段或服务发现阶段没有来自 CBPeripheralManagerDelegate 的回调,因此我不知道什么时候发生错误(如果错误发生在 iOS 端)。在 Android 端,调用一个方法来启动服务发现,但是它们的回调“onServicesDiscovered”从未被调用,这令人困惑。有什么方法可以深入了解 iOS 端的 BTLE 通信的内部情况,看看发生了什么并确定发生了什么错误?


我已经经历了这个问题至少一周了,也遇到了同样的问题。我已经在这里问过一个问题并且我已经自己回答了。主要问题是Android BUG问题。它在固定的 L2CAP 通道上发送不允许的命令。

但当 Android 与普通外围 BLE 设备通信时,它工作得很好。事实上,BLE 示例很有魅力。问题是在与 iOS 设备通信时,例如:连接建立后,它们开始协商连接参数(正常 BLE 外设不会发生此阶段),这就是问题出现的时候。 Android 向 iOS 发送错误命令,iOS 断开连接。基本上就是这样运作的

一些问题已经报告给谷歌,其中一个已经被接受,我希望他们很快就会开始解决这个问题。

不幸的是,你能做的就是等到下一个 Android 版本。不管怎样,如果你想弄清楚这个问题,我强烈建议你看看我的问题报告和我的所有测试文档。

这是链接:https://code.google.com/p/android/issues/detail?id=58725 https://code.google.com/p/android/issues/detail?id=58725

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

使用蓝牙 LE 在 iOS 和 Android 之间进行通信 的相关文章

  • sqlite3-ruby gem:无法构建 gem 本机扩展

    Update 看看这个后续问题 Windows 上的 Gem 更新 它坏了吗 https stackoverflow com questions 134581 gem update on windows is it broken 在 Win
  • ListItem 附加自定义值

    我在asp net中使用dropdownlist 它有代表下拉列表项目的ListItem集合 每个ListItem只有两个字段来保存数据 Value和Text字段 但这些还不够 我想保存更多数据对于每个项目 假设附加字段中有 Text1 和
  • java8 Collectors.toMap() 限制?

    我正在尝试使用java8Collectors toMap on a Stream of ZipEntry 这可能不是最好的想法 因为在处理过程中可能会发生异常 但我想这应该是可能的 我现在收到一个我不明白的编译错误 我猜是类型推理引擎 这是
  • 如何从 Magento One Page Checkout 获取发布数据?

    为了在 Magento Checkout 中添加客户评论字段 我在相应的模板文件中添加了一个文本字段 并使用如下观察器将评论添加到订单中 comment strip tags Mage app gt getRequest gt getPar
  • 如何将变量插入 PHP 数组?

    我在网上查了一些答案 但都不是很准确 我希望能够做到这一点 id result id info array id Example echo info 0 这有可能吗 您需要的是 不推荐 info array id Example varia
  • 如何获得 JavaScript 阶乘程序的循环来显示所使用的工作?

    你好 我面临着用 JavaScript 编写一个程序的挑战 尽管我对它不太了解 但它要求用户输入一个数字 然后计算该数字的阶乘 我使用了已经提出的问题并设法使计算正常工作 但无法获得所需的输出 我必须在以下输出中获取它 而不使用任何花哨的库
  • 用javascript调用外部网页(跨域)

    我正在尝试使用以下网络服务来验证提要这个问题 https stackoverflow com questions 11996430 check if a url is a valid feed 但浏览器不允许我向另一台服务器发送 ajax
  • 如何将十六进制字符串转换为无符号长整型?

    我有以下十六进制值 CString str str T FFF000 如何将其转换为unsigned long 您可以使用strtol作用于常规 C 字符串的函数 它使用指定的基数将字符串转换为 long long l strtol str
  • 在Python中停止ThreadPool中的进程

    我一直在尝试为控制某些硬件的库编写一个交互式包装器 用于 ipython 有些调用对 IO 的影响很大 因此并行执行任务是有意义的 使用 ThreadPool 几乎 效果很好 from multiprocessing pool import
  • Jackson 将单个项目反序列化到列表中

    我正在尝试使用一项服务 该服务为我提供了一个带有数组字段的实体 id 23233 items name item 1 name item 2 但是 当数组包含单个项目时 将返回该项目本身 而不是包含一个元素的数组 id 43567 item
  • 我可以将 MongoDB 与实体框架一起使用吗?

    实体框架有可能支持MongoDB数据库吗 有人写过实体框架MongoDB Provider吗 简短的回答 不 这肯定是可能的 但不合理 MongoDB 是文档数据库 不支持集合之间的任何物理关系 EF 非常适合 SQL MySQL 等关系数
  • Biopython 可以执行 Seq.find() 来解释歧义代码吗

    我希望能够在 Seq 对象中搜索考虑歧义代码的子序列 Seq 对象 例如 以下内容应该是正确的 from Bio Seq import Seq from Bio Alphabet IUPAC import IUPACAmbiguousDNA
  • 使用 VBA 通过 Access 导航网页/操作 IE

    你好 StackOverflow 社区 我有一个关于使用 Access VBA 操作 IE 的问题 本质上 我正在尝试编写代码 使用 IE 打开特定网页 在该页面中搜索特定链接 目标链接的名称将取决于用户的情况 通过以编程方式单击该链接导航
  • 我可以让 swagger-php 在查询字符串上使用数组吗?

    我使用 Swagger php 当我定义查询字符串上的参数时 它可以是一个数组 但据我所知 它不支持这种查询字符串 https api domain tld v1 objects q 1 q 5 q 12 我相信这会被设定in the co
  • 使用适用于 Android 和 ios 的 Angular NativeScript 的透明选项卡栏和操作栏

    我想让标签栏透明 操作栏在滑动布局或页面上透明 操作栏或选项卡栏必须位于页面顶部 就像两层一样 我尝试过使用 css 使其透明 但它在页面上并没有变得透明
  • JQuery 删除和内存泄漏

    我正在开发一个游戏 我看到了很多内存消耗 我使用jquery animate 动画完成后 我 remove 元素 我的问题是 从 dom 树中删除一个元素后 对象还存在记忆中吗 Javascript 是一种垃圾收集语言 这意味着当没有代码保
  • 使用 IIS 发布:找不到服务器 DNS

    我正在尝试使用 IIS 发布我的项目 我能够通过 Visual Studio 发布它 La aplicaci n web se public correctamente file D www plataformafantasy com Co
  • OpenCV SIFT 描述符关键点半径

    我正在深入研究OpenCV的SIFT描述符提取的实现 https github com Itseez opencv blob master modules nonfree src sift cpp 我发现了一些令人费解的代码来获取兴趣点邻域
  • 窗口未定义 - Next.js 13 - 服务器组件中的客户端组件 - [重复]

    这个问题在这里已经有答案了 Leaflet 被导入到一个导入到客户端组件的文件中 那么为什么服务器运行它并抛出此错误呢 它实际上在重试后确实有效 并最终使网站正常运行 我尝试在内部使用动态导入useEffect 没有骰子 Reference
  • 谓词对于列表中的所有元素都必须为 true

    我有一组事实 likes john mary likes mary robert likes robert kate likes alan george likes alan mary likes george mary likes har

随机推荐

  • Jenkins 发现找不到 ssh 密钥 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 当我以 jenkins 用户身份登录时 我在 ssh id rsa pub 中有一个 ssh 密钥 我已将其正确导入到 bitbucket 中 并且它
  • 从头开始水平视差滚动 - 无插件 (jQuery)

    有谁知道我是否可以找到有关如何通过js表单scratch 即无插件 进行水平视差滚动的教程 或者可以给我一个例子 我花了很多时间谷歌搜索 但只能找到使用插件的教程 我想从头开始做的原因是因为我想完美地理解视差的真正工作原理 我不介意使用jQ
  • 使用 XSLT 删除节点后消除空行

    我正在使用 XSLT 在 XML 文档中进行非常简单的转换 我只想删除所有具有特定名称的元素节点 碰巧在我的源文档中 所有这些节点都位于文档的末尾 但是在转换之后 虽然这些节点按照我的预期消失了 但在它们的位置上有很多空行 这严格来说是一个
  • WPF 中心子窗口无法使用 sizetocontent

    如果我设置SizeToContent to WidthAndHeight then WindowStartupLocation CenterOwner 不能正常工作 新窗口的中心不是位于其父窗口的中心 而是看起来更像是子窗口的左上角位于父窗
  • 解决 Unity 依赖关系问题

    当我尝试解决我的工作单元时 我收到此错误 IUnitOfWork 类型没有可访问的构造函数 但是 只有当我将 unitOfWork 的 LifetimeManager 设置为 PerResolveLifetimeManager 时 才会发生
  • 如何从 Windows 命令行启动 Git Bash?

    我希望这是一个简单的问题 但我还没有找到答案 我想从 Windows 批处理文件启动 Git Bash 这是我到目前为止所尝试的 从 Windows 7 开始按钮启动 Git Bash 使用 CTRL ALT DEL 将进程识别为 sh e
  • 我如何改进这个 C# 随机方法?

    我想我已经决定将其作为随机列表的最简单且可进行单元测试的方法 但有兴趣听到任何改进 public static IList
  • 我的 Android AChartEngine 已经可以工作了,但是如何让它看起来更好呢?

    我想标题已经解答了我的大部分问题 但让我们详细介绍一下背景 我有一个主要针对平板电脑的 Android 应用程序 它将在 TimeCharts 中显示一些不同的实时数据 因此 我已经有一个与数据源通信的服务 该数据源获取数据 解析数据并将值
  • 这里有人使用Linux主机/VMWare/VirtualKD调试环境吗?

    有没有人有过成功的经验虚拟KD http virtualkd sysprogs org在运行 VMWare Workstation 8 带有 Win7 客户机 的 Linux 主机上进行设置 尽管事实上有很多关于 VirtualKD 的 速
  • 选择/插入/更新表字段数据时修剪空格(前导和尾随)是一个好习惯吗?

    假设空格在字段数据中并不重要 那么在插入 更新或从表中选择数据时修剪空格是一个好习惯吗 我想象不同的数据库以不同的方式实现空格处理 因此为了避免这种头痛 我认为我应该禁止任何字段数据中的前导和尾随空格 你怎么认为 我认为这是一个很好的做法
  • Android 中 EditText 的不同颜色

    我正在尝试使 EditText 的文本具有多种颜色 例如 如果我的文本是 It is a good day 是否可以将句子的 It is a 部分设置为绿色 其余部分设置为红色 我用类似的东西使我的颜色的某些部分变成绿色 final Str
  • 使用 Ninject 具有多个参数的构造函数

    我正在尝试使用Ninject http www ninject org 作为 IoC 容器 但无法理解如何创建在构造函数中具有超过 1 个参数的类的实例 基本上 我有一个用于在 PCL 库中进行身份验证的服务接口 及其在 WP8 项目中的实
  • 我应该使用什么协议来进行快速命令/响应交互?

    我需要建立一个用于快速命令 响应交互的协议 我的直觉告诉我只需将一个简单的协议与 CRLF 分隔的 ascii 字符串拼凑在一起 就像 SMTP 或 POP3 的工作方式一样 如果我需要保护它 则可以通过 SSH SSL 对其进行隧道传输
  • PHP 是否优化尾递归?

    我写了一小段代码 我相信如果尾递归被优化的话应该会成功 但是它炸毁了堆栈 我应该得出 PHP 没有优化尾递归的结论吗 function sumrand n sum if n 0 return sum else return sumrand
  • C#,后台工作者

    我有一个示例 WinForms 应用程序 它使用BackgroundWorker成分 它工作正常 但是当我点击Cancel按钮取消后台线程 但它不会取消线程 当我击中Cancel呼叫按钮 CancelAsync 方法 然后在RunWorke
  • Facebook 示例拼图:河内塔

    这是 Facebook 招聘样本测试中的一个问题 有 K 个钉子 当从桩的底部到顶部观察时 每个桩可以按半径递减的顺序容纳圆盘 有N个圆盘 半径为1到N 给定钉子的初始配置和钉子的最终配置 输出从初始配置转换到最终配置所需的移动 您需要以最
  • pandas 混合位置和标签索引,无需链接

    Since ix已经自 Pandas 0 20 起已弃用 http pandas docs github io pandas docs travis whatsnew html deprecate ix 我想知道在 Pandas 中混合基于
  • 是否可以调整嵌入的 .mov 的大小?

    我嵌入的 mov 剪辑有时比显示它的位置大 所以我想调整剪辑的大小 曾尝试过width and height但这只会改变显示它的区域 它不会调整实际电影的大小 可以调整影片大小吗 如果是 怎么办 是的 您需要scale属性 有 QuickT
  • 如何从aspx页面中抓取图像?

    我在尝试着scrape来自 aspx 页面的图像 我有这段代码 可以从普通网页中抓取图像 但无法抓取 aspx 页面 因为我需要将 http post 请求发送到 aspx 页面 即使在阅读了几个线程之后 我也不知道如何做到这一点是原来的代
  • 使用蓝牙 LE 在 iOS 和 Android 之间进行通信

    我有一个工作应用程序 使用 CoreBluetooth 在 iPad 中央 和 iPhone 外围 之间进行通信 我有一项服务有两个特点 我的 Nexus 7 运行最新的 Android 4 3 支持 BTLE Android 加入 BTL