core-bluetooth相关内容
有一个BLEManager类,负责扫描、连接和接收来自蓝牙低能耗(BLE)设备的数据。看起来是这样的: class BLEManager: ObservableObject, OtherProtocols { private var myCentral: CBCentralManager! @Published var data = 0.0 override ini
..
我正在尝试将最小的BLE测试工具放在一起,其中测试控制BLE连接的两端。测试代码在设备上运行(iOS7模拟器不支持BLE),并使用CBCentralManager。连接的外设端将安装在MacBook Pro上。 iOS XCTestCase在同一台Mac上Xcode下运行。 我希望在XCTestCase中运行的测试代码能够控制BLE连接的外围设备端。 因此,典型的测试可能是:
..
发生在iOS 12&;iOS 13。 我已将Bluetooth-central正确添加到我的Info.plist 我正在指定服务UUID列表 我看到的: 如果我在前台与我们的BLE设备交互,我仍然可以在后台扫描它,即使是在几个小时和几天后,只要我不关闭蓝牙或重新启动iOS设备。 如果我在应用程序打开时从未与其交互,或者如果我重新启动设备,或关闭设备上的蓝牙,则在后台
..
如何使用蓝牙信号(BLE)将我的iOS应用程序从关闭状态(甚至不是挂起或后台状态)唤醒。这可能吗? 推荐答案 编号 无法从蓝牙信号打开应用程序。 你需要一些东西得到回应。如果您的应用程序处于活动状态或后台状态,则该选项将处于活动状态。
..
我可以在应用程序打开时将BLE设备与我的应用程序配对/连接。但当我的应用程序进入后台/挂起模式时,我无法保持连接。 是否可以保持连接处于活动状态并收到设备断开事件的通知? 推荐答案 为了在挂起/后台模式下支持核心蓝牙,请启用您的应用程序以获得背景支持。 转到您的项目-->目标-->功能-->打开后台模式-->选择使用蓝牙LE附件。 但iOS系统可能会随时关闭您的后台应用程序
..
根据Apple开发人员文档,函数didWriteValueFor()是在调用WriteValue()函数之后调用的。(参见https://developer.apple.com/documentation/corebluetooth/cbperipheraldelegate/1518823-peripheral) 我有一个可写的特征,我查找了https://developer.apple.c
..
自从我将MacOS更新到MacOS12之后,我在使用CoreBluetooth时就遇到了问题。 在我的一个应用程序中,我将列出使用CGCentralManager类的所有BLE设备。 这已经奏效多年了。但现在,当我启动我的应用程序时,Xcode中会出现以下输出: [CoreBluetooth] No name or address [CoreBluetooth] No name or
..
我在我的iOS应用程序项目中使用核心蓝牙框架。我有以下关于蓝牙低能耗的问题- 在iOS中,单个中心是否可以连接多个外围设备? 多个中央设备可以与单个外围设备连接吗? 单个IOS设备可以同时充当中央设备和外围设备吗? 如果是,那么如果两个这样的设备都尝试作为彼此的中心连接,将会发生什么情况? 当应用程序在后台时,我们是否可以通过BLE进行通信? 推荐答案 在iOS中,单个中
..
我的目标是通过蓝牙在运行 iOS 的设备和运行 Mac OS X 的设备之间建立连接.我知道我可能可以为此使用 CoreBluetooth,但我不明白怎么做,因为我没有看到在 iOS 设备 上设置服务并将其作为可用服务广播的方法运行 Mac OS X 的设备.换句话说,我只是想建立一个连接来让 iOS 设备 将数据发送到 Mac OS X 设备.另外,我将如何指定如何设置服务的属性.我试过研究这些
..
我正在开发将通过 BLE 与智能设备连接并与之通信的应用程序. 问题是:处理蓝牙事件的最佳做法是在哪个队列中? 我已经阅读了很多教程,在所有教程中我都发现了这一点: centralManager = CBCentralManager(delegate: self, queue: nil) 他们选择在主队列(queue: nil)中处理蓝牙事件,但我认为这不是一个好习惯.因为可能有很
..
我正在摆脱这个问题.我正在尝试连接到 BLE 设备,在下面的代码中看不到我做错了什么. - (void)viewDidLoad {[超级视图DidLoad];//在加载视图后做任何额外的设置,通常是从一个 nib._cm = [[CBCentralManager alloc] initWithDelegate:self queue:nil];}- (void)viewDidAppear:(BOO
..
我一直在修补 BLE(蓝牙低功耗)连接类最近有点安静,并且无法使其传输数据的速度超过 1KB/5 秒.我相信,在文档中,它说最大速度是每 20 毫秒 60 字节.通过数据传输和每组数据包后的 Ack 传输计数,我相信我们应该能够达到每秒 1.5KB 的速度.所以我的代码比它应该慢了大约 7-8 倍. 我只是想知道是否有人能够像文档所说的那样快速地在 BLE 中进行数据传输.如果比我快,你能达
..
在我最近的项目中,我需要与硬件通信(蓝牙低功耗).我已经实现了所有委托方法代码.我能够连接硬件和设备,但我没有收到配对警报(附加屏幕截图).为什么不要求配对?谢谢你. #import "BTWCentralConnectionManager.h"@implementation BTWCentralConnectionManager@synthesize cbcManager;@synthe
..
我刚开始使用 iOS 的核心蓝牙框架,我正在开发一个需要不断扫描 BLE 设备的应用程序,以便我可以每分钟左右检索它们的 RSSI 编号. 目前我有: manager = [[CBCentralManager alloc] initWithDelegate:self queue:nil];NSDictionary *options = [NSDictionary dictionaryWit
..
我的问题是 CBPeripheral 的 UUID 似乎不是唯一的. 我有两台 iPad2 和一台蓝牙 4.0 设备. 蓝牙设备的UUID与两个iPad不同. 如下图所示. 有没有办法在 iOS 设备上找到蓝牙设备的唯一 UUID? 我需要找到一个不会在不同设备之间改变的 UUID 或 mac 地址. 非常感谢,请帮帮我!! 解决方案 外设使用至少每 1
..
根据这个问题: Corebluetooth,如何获取唯一的 UUID? 连接到外围设备后,我可以检索它的 CFUUIDRef,这是唯一的,并且可以使用它通过 retrievePeripherals 重新连接.但是,我发现关闭应用程序后无法使用它重新连接. 连接后生成的唯一 UUID 是否仅在应用程序的生命周期内有效,还是我们应该能够保存它以供以后使用?我试图让我的应用程序记住一个特定
..
我正在新的 Mac mini 上尝试一些 iOS 测试应用程序,它支持蓝牙低功耗.CoreBluetooth 框架用于这些.但是,我无法让蓝牙在 iPhone 模拟器中工作,这是 Xcode 的一部分. 当我分配一个新的 CBCentralManager,centralManagerDidUpdateState:接收CBCentralManagerStatePoweredOff,代表蓝牙当前
..
我设法制作了一个 iBeacon,当信标在范围内时,它会在我的 iPhone 上触发本地推送通知.当应用程序处于后台模式时,它完美地工作. 我的问题是:即使应用程序没有运行,甚至在后台也没有,我是否可以触发通知? 我认为这是可能的,但我不确定.如果是这样,我该如何实现? 谢谢! 解决方案 是的,这是可能的,而且应该是自动的. 在您创建 CLBeaconRegion
..
我正在尝试使用 CoreBluetooth(蓝牙 4.0)通过 iPhone 连接到 Raspberry Pi.我发现了设备并使用以下代码发出连接请求: if (peripheral != self.foundPeripheral) {NSLog(@"尝试连接到 %@",peripheral.name);self.foundPeripheral = 外围设备;[self.centralManag
..
这与大多数人的要求有些落后.我想故意触发对话框询问用户权限: 即使在离线状态下也能连接到蓝牙设备. 访问基于 iOS 的 Twitter 帐户. 我已经有一个类似的定位对话框,可以正常工作.我这样做是因为我想让请求许可的过程更温和一些,就像 Heyday,通过显示一个欢迎屏幕来解释为什么应用程序需要这个服务,然后当用户点击“确定"时,启动请求并触发对话框. 我已经尝试了一些东西
..