使用蓝牙 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 之间进行通信 的相关文章

  • 如何识别图形线条

    我有以下格式的路径的 x y 数据 示例仅用于说明 seq p1 p2 0 20 2 3 1 20 2 4 2 20 4 4 3 22 5 5 4 22 5 6 5 23 6 2 6 23 6 3 7 23 6 4 每条路径都有多个点 它们
  • 如何强制下载图片?

    我的页面上有一个动态生成的图像 如下所示 img src 我不想告诉我的用户右键单击图像并点击保存 而是想公开一个下载链接 单击该链接将提示下载图像 如何实现这一目标 最初我在 js 中尝试这样做 var path my image att
  • 将 Hbase 与 PHP 集成 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我已经安装了 Hbase 现在我正在寻找一些 PHP 库来将 hbase 与 PHP 集成 我尝试了 2 个库 第一个是我尝试与 th
  • SimpleXML 返回空数组

    我正在尝试使用 Google Maps API 和 PHP SimpleXML 获取城市的纬度和经度 我尝试这样做 xml simplexml load file http maps googleapis com maps api geoc
  • Powershell 中的“$”是什么?

    是什么意思 在 Powershell 中 Edit TechNet 答案 http technet microsoft com en us library hh847768 aspx同义反复 没有解释 成功 或 失败 的含义 包含上次操作的
  • 如何将 SQL“LIKE”与 LINQ to Entities 结合使用?

    我有一个文本框 允许用户指定搜索字符串 包括通配符 例如 Joh Johnson mit ack on 在使用 LINQ to Entities 之前 我有一个存储过程 该存储过程将该字符串作为参数并执行以下操作 SELECT FROM T
  • UI Router 将 url 与 hash(片段)相匹配

    使用 UI 路由器 我需要将 URL 与其中包含的哈希 片段 进行匹配 HTML5 模式 state myState url path id page section templateUrl template html controller
  • AWK 错误:尝试在标量上下文中使用数组

    我正在学习AWK 这是一个简单的代码片段 我尝试将字符串拆分为数组并迭代它 BEGIN split a b c a for i 1 i lt length a i print a i 运行此代码时 我收到以下错误 awk awk txt 4
  • 如何使用placement new重新初始化该字段?

    我的课程包含字段 private OrderUpdate curOrderUpdate 我一遍又一遍地使用它 经常需要重新初始化 for int i 0 i lt entries size i auto entry entries i ne
  • [GoF]-ConcreteSubject 可以覆盖通知方法吗?

    我正在模拟一种情况 其中存在 通知框 观察者 list1 list2 list3 这个科目 现在我会制作一张图表 其中使用观察者模式描述每个列表实现不同类型的notify 这一事实 例如 列表状态的某些变化只需要按照某些标准通知给某些观察者
  • 缓存感知树的实现

    I have a tree where every node may have 0 to N children 用例是以下查询 给定指向两个节点的指针 这些节点是否位于树的同一分支内 Examples q 2 7 gt true q 5 4
  • 结构化绑定的用例有哪些?

    C 17 标准引入了新的结构化绑定 http en cppreference com w cpp language structured binding功能 最初是proposed http www open std org jtc1 sc
  • Jenkins 通过 ssh 发布显示错误“jenkins.plugins.publish_over.BapPublisherException:无法添加 SSH 密钥。”

    为了使用 ssh 连接 jenkins 与远程服务器 我在 jenkins 中安装了通过 SSH 发布的插件 但配置后 它显示错误为 jenkins plugins publish over BapPublisherException 无法
  • 在并行包中的 R 的 par*apply 函数内部使用 Rcpp 函数

    我试图了解背后发生的事情Rcpp sourceCpp 调用并行环境 最近 问题中部分解决了这个问题 在 Windows 上使用 parLapply 中的 Rcpp 函数 https stackoverflow com questions 2
  • React Native 0.61 中引入的快速刷新不起作用

    也发表在https github com facebook react native issues 27583 https github com facebook react native issues 27583 更新 一天过去了 我再次
  • 在 Navicat Premium 中连接到 LocalDB 服务器

    Recently I installed LocalDb Serer on my laptop I am trying to establish a connection between Navicat and LocalDB server
  • 使用 numpy 加速 for 循环

    下一个 for 循环如何使用 numpy 获得加速 我想这里可以使用一些奇特的索引技巧 但我不知道是哪一个 这里可以使用 einsum 吗 a 0 for i in range len b a numpy mean C d e f b i
  • Ada 中的 In/Out 与 Out

    我有一个简短的艾达问题 如果我有一个程序may写出一个变量 或者我might不用管它 它应该是一个Out参数或In Out范围 我想这可以归结为一个问题 如果调用者调用参数如下的过程 它会看到什么Out但该过程不触及参数 它看到相同的值吗
  • 在 Perl 中查找数组的大小

    我似乎遇到过几种不同的方法来查找数组的大小 这三种方法有什么区别呢 my arr 2 print scalar arr First way to print array size print arr Second way to print
  • 将 R 中的列中的单引号替换为双引号

    我在 R 中的数据框有一个 A 列 其中有带单引号的字符串数据 Column A Hello World Hi World Good morning world 我想做的是将单引号替换为双引号并实现如下所示的输出 Column A Hell

随机推荐

  • 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