我正在开发一款可与蓝牙低功耗设备通信的应用程序。我正在UI中显示心率。当蓝牙处于连接状态时,它在前台和后台都能正常工作。但我的问题是,虽然应用程序在后台时蓝牙设备的连接丢失时间更长,但我的应用程序崩溃了。将崩溃报告显示为:MyApp[565]hasactiveassertionsbeyondpermittedtime: 最佳答案 对于CoreBluetooth后台通信,必须通过特性更改通知或指示来实现。您让应用程序在进入后台后运行时间过长,而iOS正在强行终止它。我想您正在使用beginBackgroundTaskWithExpir
我得到了BluetoothLEdatatransfersample在我的iPad上启动并运行。然而,我真正想做的是采用这个示例并使其在Unity中运行。我知道Unity支持创建和导入自定义DLL文件,我想知道以下问题:是否可以将为nativeiOS设备和库(在本例中为核心蓝牙)编写的代码转换为DLL?我该如何将其转换为DLL?有人能给我指出正确的方向吗? 最佳答案 您需要开发一个Unity插件。这个主题没有太多资源:但我找到了这个教程:http://www.reigndesign.com/blog/unity-native-plug
我可以从外围设备发送一个RSSI值作为广告数据包吗?我不想为了读取RSSI值而必须连接到中央管理器。这可以做到吗?此外,我希望外围设备能够从后台运行的应用程序发送这些广告。 最佳答案 当您为任何蓝牙低功耗设备做广告时,RSSI是免费的。所以是的,它可以/将显示RSSI,并且您不需要做任何额外的事情(只要您设置了peripheralManager来正确做广告). 关于ios-将RSSI值作为广告数据包发送?,我们在StackOverflow上找到一个类似的问题:
我有一个蓝牙低功耗(BLE)应用程序,它通过开放式连接与BLE设备进行通信。我正在使用CoreBluetooth库。在我将我的iPhone升级到iOS7并将XCode升级到XCode5之后。我重新编译了我的低功耗蓝牙应用程序,发现它不再工作了。连接成功。可以毫无问题地发现服务和特征。甚至特征的阅读似乎都很好。但是写入应该在BLE设备上触发某些操作的特性没有任何影响。如果我使用XCode将相同的应用程序下载到另一部装有iOS6的iPhone,一切正常。所以我可以确定问题可能出在iOS7而不是XCode5的重新编译。也有可能XCode5为iOS6设备准备了不同的应用程序,即使是来自同一个项
我最近购买了一款名为Bluno的蓝牙4.0LE微Controller。这是一款兼容Arduino的微Controller,内置BT4.0LE,无需额外硬件。无论如何,我可以对微Controller进行编程,使其充当中央或外围设备,我计划用来与设备通信的iPodTouch5G也是如此。我最初认为我应该让Bluno充当中心,让iPodTouch充当外围设备,因为我用Obj-c编写的应用程序将消息发送到微Controller,而之前我们展示的微Controller基于行为在它将收到的消息上。然而,当我看到销售Bluno的人编写的示例应用程序时,他们将iDevice配置为中心,这让我感到奇怪,
我正在开发一款点对点共享信息的应用程序。两种设备同时充当中心和外围设备。当iOS设备A连接到iOS设备B时,它们交换信息,然后中心断开连接,并再次开始扫描。如果设备获取任何新信息,我想用反射(reflect)更新时间的新序列日期(和设备ID)更新CBAdvertisementDataServiceUUIDsKey中的第二个服务UUID。通过这种方式,其他iOS设备可以从广告中判断它们是否应该连接。更新广播的代码如下。它生成的UUID是有效的,但是一旦我修改了广告,我的中心就不再找到外围设备了。我知道广告已缓存,但我曾假设删除该服务并重新添加它,我可以解决这个问题。-(void)upda
我正在开发一个使用核心蓝牙与BLE设备通信的iOS应用程序。有谁知道在连接到外围设备时是否可以建立有界连接?换句话说,目前操作系统只有在应用程序请求(读/写)加密特征时才会发起配对请求,我想知道是否有办法让操作系统甚至在之前就发起配对请求——例如当它看到一个连接时请求(基本上是在调用connectPeripheral:options时)。可能吗? 最佳答案 不,目前不可能。操作系统设置为仅在设备之间建立连接并请求访问加密特性后才显示绑定(bind)请求。如果用户在绑定(bind)请求上按下取消,无论如何连接都会被断开。但由于您只能在
iOS蓝牙智能。我们有几个中央设备和一个外围设备。如何将外围设备请求发送到中央设备之一?iOS支持“直接广告”之类的东西吗? 最佳答案 蓝牙外设应该用作Central可以找到并连接的广告商。不是相反。基本上,您需要使用Central正在扫描的服务来设置您的外围设备。central发现peripheral后,可以选择连接,然后在设备之间交换额外的数据。查看BluetoothDeveloperSite获取更多信息。 关于外围模式下的iOS蓝牙设备向一个中央设备发送请求,我们在StackOve
我正在尝试使用CoreBluetoothAPI连接到心率监测器。根据蓝牙规范,心率监测服务是0x180D.要了解蓝牙设备有哪些服务,您可以连接到它并请求可用服务。如果其中一项设备服务是0x180D你有一个心率监测器。不幸的是,这意味着连接到所有附近的蓝牙设备以过滤心率监测器。幸好iOS有以下方法-scanForPeripheralsWithServices:它扫描宣传特定服务的蓝牙设备。我遇到的问题是,有些心率监测器会宣传他们的服务,但有些则不会。其他应用程序如何连接到心率监测器?他们是否连接到附近的每台蓝牙设备以发现它是否是心率监测器? 最佳答案
我在Xcode6中制作了一个非常简单的iOS应用程序来试用CoreBluetooth并与我的PolarH6心率监测器通信。由于某种原因,没有调用didDiscoverPeripheral方法。我在StackOverflow上发现了以下类似的问题,但它们要么有点不同,要么没有真正为我回答:corebluetooth-diddiscoverperipheral-not-being-called-in-swiftnot-working-call-to-centralmanager-diddiscoverperipheral-advertisementdatadiddiscoverperiph