草庐IT

bluetooth-lowenergy

全部标签

ios - Core Bluetooth - 在后台执行长期操作

这是来自官方文档中iOS应用程序的核心蓝牙后台处理部分:在后台执行长期操作SomeappsmayneedtousetheCoreBluetoothframeworktoperformlong-termactionsinthebackground.Asanexample,imagineyouaredevelopingahomesecurityappforaniOSdevicethatcommunicateswithadoorlock(equippedwithBluetoothlowenergytechnology).Theappandthelockinteracttoautomatica

ios - 将数据从支持 BLE 的 arduino 发送到 iOS 应用程序

我正在使用AdafruitBluefruitFeather构建一个设备,该设备可以收集数据,然后将数据发送到iPhone,并在iPhone上进行读取和处理。我看过无数试图解释如何对设备进行编程的示例,但我似乎对如何通过蓝牙将设备连接到iPhone存在误解。我们的代码基于其中一个Adafruit示例,我们尝试合并AdafruitBLEGatt库(https://learn.adafruit.com/introducing-adafruit-ble-bluetooth-low-energy-friend/ble-gatt),但它不起作用,这是我们第一次使用蓝牙。我们使用的iOS代码来自ht

ios - iOS 中的 BLE 绑定(bind)回调

我正在尝试连接自动要求绑定(bind)(PIN)的从设备,问题是,我如何判断绑定(bind)是否发生以及是否成功?我在文档中找不到任何与之相关的回调。提前致谢。 最佳答案 今年早些时候,我们遇到了一个类似的问题,涉及将连接到Android和iOS的硬件。不要将此视为问题的答案,而应将其视为经验分享。如果您还想支持Android并与BLE硬件的固件开发人员联系,我会鼓励您不要使用BLE绑定(bind)方法,因为我们在Android上遇到了麻烦。Android设备使用各种不同的蓝牙芯片,并且这些芯片使用不同的绑定(bind)方法。如果您

ios - 找出用户要求绑定(bind) BLe 设备的决定(Objective-C,iOS 10)

是否可以让用户决定iOS的绑定(bind)请求?选择1:放弃选择2:连接/绑定(bind)绑定(bind)请求截图:我尝试使用centralManagerDidUpdateState,但如果我打开蓝牙,它只会通过CBManagerStatePoweredOn调用一次。#pragmamark-CBCentralManagerDelegate-(void)centralManagerDidUpdateState:(CBCentralManager*)central{info(@"centralManagerDidUpdateState");switch(central.state){cas

android - 是否可以在不定位设备的情况下通过蓝牙 LE 进行广播?

我正在使用Xamarin和MvvmCross构建一个需要使用蓝牙LE的应用程序,但这个问题一般与蓝牙LE技术有关,而不特定于任何平台。阅读教程,我注意到当一个设备通过蓝牙LE传输数据时,它总是以另一个蓝牙设备为目标,因此没有其他设备可以获取传输。我的问题是,定位设备是强制性的吗?或者我可以盲目地广播传输并让任何蓝牙设备获取传输吗?如果相关的话,我同时针对Android和iOS平台。编辑此外,盲目广播敏感数据是否是一种不好的做法?定位设备是否能保证安全/数据隐私? 最佳答案 这与您使用的是iOS还是Android无关。相关部分是设备的

ios - 如何启用自定义 CBDescriptor 值?

我正在开发BLE应用程序(Heath相关),因为我有一个选项可以从BLE设备获取ECG值。因为我需要启用8个波形才能在我的应用程序中获取ECG数据。我的问题是如何使用CBDescriptor启用所有波形。我需要将如下数据传递给CBDescriptor。波形ID的格式0:8bit,1:16bit,2:32bit,3:64bit,4:128bit,5:8bit*3,6:16bit*3,7:32bit*3uint8_twaveArray[8]={0x02,0x00,0x02,0x00,0x00,0x00,0x00,0x00};NSData*waveData=[NSDatadataWithBy

ios - 应用程序暂停后重新打开蓝牙 radio 不会调用 centralManagerDidUpdateState

我的应用连接到一个低能耗外围设备。当外围设备超出范围时,我会得到didDisconnect方法回调,我只需在外围设备上调用连接,只要它回到范围内,它就会连接。即使在后台,即使应用程序被iOS挂起,但由于我有一个挂起的连接,它会唤醒应用程序并进行连接。但是,如果用户关闭蓝牙,所有外围设备都会进入断开连接状态,因此没有待处理的连接。如果应用程序被iOS暂停,并且用户在暂停后将其重新打开,则不会调用我的委托(delegate)方法,我在下面添加了我的初始化和状态恢复方法。我在后台队列上初始化中央管理器,但每当我收到回调时,我都会让主队列执行任务:-(void)initialize{if(!s

ios - L2CAP IOS + Linux (Bluez)

我正在尝试在IOS和LinuxPC之间进行简单的L2CAP套接字通信。我已经能够:在两台Linux机器之间创建L2CAP连接(使用来自https://github.com/atwilc3000/sample/tree/master/Bluetooth的示例代码)在两个Iphone之间创建L2CAP连接(使用来自https://github.com/github-deden/iOS_L2Cap的示例代码)在那个IOS示例中,他们使用一些PSM广告来为L2CAPchannel选择正确的PSM。在集成方面,我在两侧设置了固定的PSM。Iphone正在连接到固定PSM的Linux机器。我尝试了

ios - 警告 : The advertisement key 'Service Data' is not allowed

我正在开发BLE外设应用程序。根据要求,广告包必须包含服务数据字段。我在Android中做过,数据包应该是这样的:0x16是此处列出的服务数据字段https://www.bluetooth.com/specifications/assigned-numbers/generic-access-profile/同样的事情,我在iOS中进行。我使用BluetoothCore框架来实现蓝牙外设。下面是我应该用来设置服务数据字段值的属性:advertisementData[CBAdvertisementDataServiceDataKey]=但是我得到了一个警告:WARNING:Theadver

ios - 我如何从 Kill 状态重新启动我的 iOS 应用程序以执行长期任务?

首先,我将解释我想要实现的目标。我有一个BLE锁。我希望我的应用程序将从终止状态唤醒并开始扫描BLE设备。一旦发现BLE设备,它将与我的手机连接并解锁。所有这些都在后台模式下工作,我对此进行了多次测试。但我也希望它在应用程序处于终止状态时起作用。我尝试了几件事。首先,我尝试了地理围栏,但如果地理围栏应用程序唤醒时间较短,我就无法正确扫描BLE设备。当didEnterRegionregion:调用时,我发送了本地通知并且它工作正常。因此,在那之后我尝试在didEnterRegionregion:时扫描BLE设备,并且还收到扫描开始的通知,但我认为一段时间后应用程序会自动从后台删除并且无法