问题标签 [ios-bluetooth]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2662 浏览

ios - iOS BLE在连接后立即断开连接,只有重启设备有帮助

我的应用程序使用 BLE(蓝牙 4)连接到物理外围设备。我和我的用户反复遇到一个错误,有时应用程序停止连接到外围设备 - 您可以看到发现 BLE 外围设备并建立连接的指示,但几秒钟后,连接断开.

只有在重新启动 iDevice 后,事情才会恢复正常。

我已经做了很长时间的检查工作并彻底研究了这个问题,直到我得出结论,这一定是 iOS 中的一个错误(用 7.1 测试过,但也可能发生在 8.0 上)。

我的测试和发现:

  • 每个支持 iDevice 的 BLE 都会发生。
  • 发生在我自己的 BLE 外围设备和其他 3rd 方 BLE 产品中,已知两者在正常情况下都能完美运行。
  • 它有时甚至可以运行 50 次,但最终它会失败。
  • 网络和出厂设置重置没有帮助。
  • 通过各种应用程序测试并发生:##
    • 我自己的应用程序。
    • 清理仅扫描外围设备并尝试连接到第一个也是唯一发现的外围设备的新 Xcode 项目。
    • Apple 的 BLE 示例应用程序:健康温度计(进行了相关修改,因为我没有这个特定的外围设备)。
    • 3rd 方应用程序,包括通用的LightBlue
    • 重要提示:上述每个选项在一段时间内都能完美运行(多次启动),在某些时候突然停止,然后在重新启动设备后再次运行。
  • 尝试发现外围设备的服务时,连接过程似乎失败 - 即它被正常发现和连接,但是当启动服务发现时,它停止响应(未调用didDiscoverServices)。
  • 我当然尝试了许多在网上找到的方法,但都没有运气。

任何人都可以阐明这个问题吗?

  • 这是一个已知问题吗?
  • 它在最近的 iOS 更新中修复了吗?
  • 它会被修复吗?

您可以想象这样的问题对我的用户体验的负面影响,因为 BLE 连接对产品至关重要。

我会很感激你关于如何解决它的意见和建议。

谢谢!

更新:

Apple 回复了我的技术支持请求:

底线:

  • 他们说他们已经修复了 iOS 8 中一些与 BLE 相关的错误,并敦促我们测试它是否仍然在 iOS 8 中发生。
  • 他们说从那开始,如果没有,请尝试使用他们提供的实用程序来诊断问题。

到目前为止,对我来说,iOS 8 并没有发生这种情况,但另一方面,我可以看到有关其他蓝牙问题的帖子,这些帖子不一定相关,但谁知道呢。

完整答案:

我正在回应您的发现,即您和您的客户发现在某些使用点后,iOS BLE 无法保持连接。您指出问题是在 iOS 7.1 中发现的。有关于 iOS BLE 的问题已报告并已在 iOS 8.0 中修复。为了最好地确定您的问题是否已得到解决,最简单的方法当然是安装 iOS 8 并查看问题是否可以复制。但是,当您报告您可以使用 iOS 7.1 在您的设备上复制问题时,首先要获取蓝牙服务器配置文件,将其安装到您的设备,复制问题,然后在问题发生时获取 BLE 服务器日志。该配置文件将使 BLE 服务器报告其他日志记录详细信息,这有助于报告服务器遇到的问题。我们可以查看该问题是否是以前报告过的问题。需要考虑的是,对于所有新的错误报告问题,Core Bluetooth 工程部门要求使用当前发布的 iOS 版本(即 8.0)解决所有问题。对于使用 iOS 7.x 的客户,将不再有 iOS 7 更新 - 所有软件修复和错误修复都将与 iOS 8 一起使用。因此,只会调查 iOS 8 报告的问题。您可以从 Apple Developer 错误报告网页获取 BLE 服务器配置文件 将不再有 iOS 7 更新 - 所有软件修复和错误修复都将与 iOS 8 一起使用。因此,只会调查 iOS 8 报告的问题。您可以从 Apple Developer 错误报告网页获取 BLE 服务器配置文件 将不再有 iOS 7 更新 - 所有软件修复和错误修复都将与 iOS 8 一起使用。因此,只会调查 iOS 8 报告的问题。您可以从 Apple Developer 错误报告网页获取 BLE 服务器配置文件https://developer.apple.com/bug-reporting/ios/bluetooth/。网页上提供了安装配置文件和捕获日志的说明。如果您使用 iOS 7.x 捕获日志,可以将其发送给我进行审核。然而,这将是一个学术练习——要知道 iOS 是否解决了这个问题,或者它是否仍然存在,我们需要看看这个问题是否发生在 iOS 8 下。要记住,一旦你将设备更新到 iOS 8,您将无法将其恢复到以前的版本。我很高兴查看您的结果。但是,如果问题在 iOS 8 下仍然存在,最好提交错误报告以引起 Core Bluetooth 工程部门对此事的关注。您可以使用 Apple Developer 错误报告网页提交错误报告。- http://bugreport.apple.com

0 投票
0 回答
406 浏览

ios - 在 iOS 8 中无法从后台连接到蓝牙外设

在前台时,我设法成功连接并与外围设备配对。但是当我尝试从后台连接时,外围设备被连接,然后立即断开连接,并出现以下错误:

这似乎很奇怪,因为外围设备已经配对,并且在前台应用程序时不会发生类似的情况。

这只发生在 iOS 8 上。在 iOS 7 上,相同的代码在后台和前台模式下都可以正常工作。

0 投票
1 回答
495 浏览

ios - iOS蓝牙与设备配对并取消配对

我们可以在 iOS 代码中控制与设备的配对和取消配对吗?我的问题是,如果 BLE 设备连接到我的应用程序,它正在正确读取数据,并且每次我点击配对时它都会询问我是否与 BLE 设备配对,它没有读取数据来自 BLE 设备。如果取消配对我的 BLE 设备,它正在读取数据。

0 投票
2 回答
523 浏览

ios - 无需使用 0x004c Apple 公司标识符即可在 IOS 中获得 Beacon 广告

我已经开发了一个 Android 应用程序来从 iBeacon 获取数据,因为我可以获得原始数据,我这样做没有问题,但是在 IOS 中它是不可能的,而且似乎不可能接收不支持的数据包'没有 Apple 公司标识符 0x004c 进入广告。是否可以从使用其他公司标识符进行广告的设备接收广告?如果可行,是否可以接收公司标识符代码?我无法在 Apple 提供的文档中找到任何内容,也无法在多个论坛中搜索。

任何想法都会受到欢迎。

嗅探器捕获以下内容:

Nordic Semiconductors 的公司标识符:

苹果公司标识符:

问候

伊万

0 投票
0 回答
30 浏览

ios7 - 任何可用于 BLE 设备的模拟器

有没有可用的BLE模拟器?除此之外,如果 iPhone 已经与 iOS 配对,我还想知道如何将命令从 BLE 设备发送到 iOS 并唤醒我的 iOS 应用程序

提前致谢 :)

0 投票
1 回答
209 浏览

ios - 拔下电池后重新连接到 BLE 设备

我有一个 BLE 设备,我正在编写一个与之配对的应用程序。我可以毫无问题地发现并连接到设备。但是,如果我已连接并拉动并重新插入 BLE 设备上的电池,我会收到didDisconnectPeripheral回调,但didConnectPeripheral即使我仍在扫描,我也永远不会收到另一个。我也试过打电话retrieveConnectedPeripheralsWithServicesretrievePeripheralsWithIdentifiers但这些都没有返回任何东西。

重启 BLE 设备的电源后,如何可靠地重新连接?

0 投票
2 回答
418 浏览

ios - iBeacon 技术(iOS 开发)

我需要对 iBeacon 技术的支持。在我们的例子中,我想要一个连续扫描(测距)iBeacons 的功能,因为我们的应用程序是在前台或后台。我们知道使用 CLLocationManager 标准更新位置方法是可能的。但是我们不想使用标准的位置更新(因为我们不想冒电池耗尽的风险)。是否有任何其他选项可以在不使用 CLLocationManager 的情况下启动 CLBeaconRegion 的连续测距?

0 投票
3 回答
4112 浏览

ios - 如何在objective-c中获取信标的mac地址而不知道它的UUID、主要和次要值?

在我的应用程序中,我需要搜索最近的信标并检测它们的 MAC 地址,以计算用户在建筑物中的确切位置。问题是,如果没有信标的 UUID、主要和次要值,我们能否从 iOS 应用程序中检测到最近的信标 MAC 地址?

0 投票
2 回答
5113 浏览

swift - 在 iOS 上以广告形式发送蓝牙 LE 数据

我的应用程序作为蓝牙 LE 外围设备运行,我试图在广告中仅发送几个字节的自定义数据。

但看起来 CBAdvertisementDataManufacturerDataKey 中的数据集正在被剥离,而不是通过无线电发送出去。我已经阅读了在 Apple 的文档和在线中可以找到的所有相关信息。共识似乎是核心蓝牙忽略数据,因为仅支持 CBAdvertisementDataLocalNameKey 和 CBAdvertisementDataServiceUUIDsKey。上面的编译和运行良好,我可以在我的 BT 扫描仪应用程序中“我希望这能工作”,但我的两位自定义数据似乎不起作用。

有什么办法可以规避这个;CoreBluetooth 的任何可接受的替代品或我缺少的任何完全愚蠢的东西?

谢谢,

0 投票
1 回答
992 浏览

bluetooth - BT and BLE simultaneously on same device

We are trying to make an device which can connect to another device running BT and BLE application. Our device is running android kitkat. We are facing following issue.

Once we connect using BT (stream songs over BT) , BLE application running on the same device (that is streaming music) is not detected in BLE scan.

But is detected by other devices (phones in the vicinity).

When we connect using BLE and do some data transfer then connect BT and stream music fromt the same device then both work fine.

Only when we connect to BT first we are not able to detect BLE app running on same device.

Has anyone faced this issue before?

After checking the logs it seems device (Android) does get advertisement packets from BLE app running on another device (iOS) but not the scan response packets. So it keeps waiting for scan response packet. I tried looking for scan request function but couldn't find it.