Tag: 蓝牙

核心蓝牙 – 在后台执行长期操作

这是来自官方文档中的iOS应用程序核心蓝牙后台处理部分: 在后台执行长期行动 某些应用程序可能需要使用Core Bluetooth框架在后台执行长期操作。 例如,假设您正在开发一款iOS设备的家庭安全应用程序,该应用程序与门锁(配备蓝牙低功耗技术)进行通信。 应用程序和锁相互作用,当用户离开家时自动锁住门,当用户返回时将其解锁 – 当应用程序在后台时。 当用户离开家时,iOS设备可能最终超出锁的范围,导致与锁的连接丢失。 此时,应用程序可以简单地调用CBCentralManager类的connectPeripheral:options:方法,并且因为连接请求不超时,所以iOS设备将在用户返回时重新连接。 好的,我们有一个应用程序,适当locking/解锁门…所以正如指出的,这是适用于应用程序在后台(最有可能在暂停模式)。 现在,让我们继续(引用文档): 现在想象一下用户离家几天。 如果应用程序在用户离开时被系统终止,则当用户返回家时应用程序将不能重新连接到锁,并且用户可能无法解锁门。 对于像这样的应用程序,能够继续使用核心蓝牙执行长期操作(例如监视活动连接和挂起连接)是至关重要的。 所以,如果用户离家几天,并且iOS终止了应用程序,我们将不得不实施状态保存和恢复,以便iOS在检测到连接请求时重新启动应用程序,并让应用程序打开门。 相关报价: 在上述家庭安全应用的情况下,系统将监控连接请求,并且当用户返回家庭并且连接请求完成时,重新启动应用以处理centralManager:didConnectPeripheral:委托callback。 这一切都是有道理的,但请注意这一部分: 现在想象一下用户离家几天。 如果应用程序在用户离开时被系统终止,则当用户返回家时应用程序将不能重新连接到锁,并且用户可能无法解锁门。 对于像这样的应用程序,能够继续使用Core蓝牙执行长期操作是至关重要的。 这是否意味着,如果应用程序在用户离开家的某个时刻被用户强行杀死,那么这也会起作用吗? 意思是当用户回家时,门会解锁,或者他必须手动重新启动应用程序来解锁门? 我在问这个问题,因为终止应用的重新启动是如何工作的。 当用户杀死应用程序,并且当iOS杀死支持后台执行的应用程序时,情况就不一样了: 支持后台执行的应用程序可能会被系统重新启动以处理传入的事件。 如果某个应用程序由于用户强制退出而被终止,系统将在下列事件之一发生时启动应用程序… 资源 所以再一次,如果用户离开了几天,他已经closures了应用程序的双击主页button,并拖动,他将能够进入他的家,而无需手动重新启动应用程序?

从iOS应用程序中检测附近的移动设备

是否有可能创build一个iOS应用程序,可以扫描附近的移动设备(例如iPhone,Android,iPad等),而无需在附近的移动设备上运行任何定制应用程序? 我已经尝试使用CoreBluetooth,就像在我的iPhone 6+上运行一样: [self.centralManager scanForPeripheralsWithServices:nil options:nil]; 但唯一附近的设备,它检测到我的iMac,它不会检测到我的iPad Air 2,或我的蓝牙耳机。 难道我做错了什么?

如何使用AVFoundation在audioinput源(蓝牙,内置麦克风)之间切换

目前,我在内置麦克风和蓝牙麦克风iOS8之间切换audioinput源时遇到了麻烦 我试图find在线解决scheme,但没有得到:( 任何人,请告诉我适当的方式来实现。 期待您的帮助!

当BLE断开时,IOS CoreBluetooth:应用程序在后台运行

我试图在BLE断开连接的时候在后台运行我的应用程序,但是系统会在一段时间后终止应用程序。所以我读了苹果的文档 – “核心蓝牙编程指南”。最后我在“核心蓝牙后台处理的iOS应用程序“。 “在后台执行长期行动 某些应用程序可能需要使用Core Bluetooth框架在后台执行长期操作。 例如,假设您正在开发一款iOS设备的家庭安全应用程序,该应用程序与门锁(配备蓝牙低功耗技术)进行通信。 应用程序和锁相互作用,当用户离开家时自动锁住门,当用户返回时将其解锁 – 当应用程序在后台时。 当用户离开家时,iOS设备可能最终超出锁的范围,导致与锁的连接丢失。 此时,应用程序可以简单地调用CBCentralManager类的connectPeripheral:options:方法,并且因为连接请求不超时,所以iOS设备将在用户返回时重新连接。 现在想象一下用户离家几天。 如果应用程序在用户离开时被系统终止,则当用户返回家时应用程序将不能重新连接到锁,并且用户可能无法解锁门。 对于像这样的应用程序,能够继续使用Core蓝牙执行长期操作(例如监控活动和挂起的连接)至关重要。 从这一段我们知道,“监控活动和挂起的连接can solve the problem但我找不到任何方式来实现monitoring active and pending connections在 核心蓝牙框架参考 如何实现在BLE断开连接时让我的应用程序在后台运行? 有人有什么主意吗 ?

方法captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer :( CMSampleBufferRef)sampleBuffer fromConnection只调用了几次

我从外部蓝牙麦克风捕捉audio。 但是我不能logging任何东西。 这个方法在当前AvCaptureSession的开始只调用一次。 – (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection 之后,我从来没有把这个方法叫做处理audio。 为了实例化捕获会话,我这样做: self.captureSession.usesApplicationAudioSession = true; self.captureSession.automaticallyConfiguresApplicationAudioSession = true; [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionAllowBluetooth error:nil]; /* Audio */ AVCaptureDevice *audioDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeAudio]; audioIn = [[AVCaptureDeviceInput alloc] initWithDevice:audioDevice error:nil]; if ( [_captureSession canAddInput:audioIn] ) { [_captureSession addInput:audioIn]; } [audioIn release]; audioOut = [[AVCaptureAudioDataOutput alloc] init]; // Put audio […]

iOS – 如何在我的应用程序中集成蓝牙设备

我正在尝试创build一些连接到蓝牙设备的应用程序。 一个简单的事情就像一个蓝牙条形码扫描器扫描并发送一个数字到我的应用程序。 我想知道我的应用程序中可以使用哪种框架或什么东西,可以将条形码扫描器与我的应用程序集成在一起。 有什么API或例子或教程等,可以帮助我实现这样的事情?

外围writeValue:forCharacteristic:types:返回空错误和值

我正在使用苹果公司编写的下面的代码。 https://developer.apple.com/library/mac/samplecode/HeartRateMonitor/Listings/HeartRateMonitor_HeartRateMonitorAppDelegate_m.html#//apple_ref/doc/uid/DTS40011322-HeartRateMonitor_HeartRateMonitorAppDelegate_m-DontLinkElementID_4 这是Apple写的writeValue部分 if ([aChar.UUID isEqual:[CBUUID UUIDWithString:@"2A39"]]) { uint8_t val = 1; NSData* valData = [NSData dataWithBytes:(void*)&val length:sizeof(val)]; [aPeripheral writeValue:valData forCharacteristic:aChar type:CBCharacteristicWriteWithResponse]; } 我加了didWriteValueForCharacteristic – (void) peripheral:(CBPeripheral *)peripheral didWriteValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error { NSLog(@"Did write characteristic value : %@ with ID %@", characteristic.value, characteristic.UUID); NSLog(@"With error: %@", [error localizedDescription]); } 从didWriteValueForCharacteristic打印输出如下: Did write characteristic value […]

苹果外部附件(蓝牙)只适用于MFI设备?

我学士论文的目标是通过蓝牙适配器将光学设备连接到iPad。 目前我正在与苹果的限制挣扎。 我经常在网上阅读,我可以使用支持的configuration文件连接到任何支持这些设备的设备。 但是,苹果技术常见问题解答指出: “外部附件框架旨在允许iOS应用程序只与在苹果MFi授权程序下开发的硬件附件进行通信” 。 我不认为写在这里的人只是为了好玩而撒谎。 任何人都可以告诉我,如果它的工作或没有联合的经验,这一点,非MFi配件?

iOS 6 – BluetoothManager框架 – “NSObject”未find错误

我的问题是这个的重复。 但是那个(正确地)被closures了作为非build设性,零回答和绝对没有用途对任何人。 我试图连接到我的iPhone 5的外部蓝牙配件。该配件既不是MFIauthentication,也不支持蓝牙低功耗通信 。 所以我唯一的select是使用私有框架连接到它,我这样做,因为我不打算推​​我的应用程序到App Store。 该应用程序是供个人使用的。 我正在尝试使用私人BluetoothManager框架类,使用XCode 4.6和我的应用程序是针对iOS 6.0。 我目前的设置 在sdk文件夹的bluetoothManager框架中添加了一个名为Headers的文件夹 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk/System/Library/PrivateFrameworks/BluetoothManager.framework 在该文件夹中创build了4个头文件,即 BluetoothAudioJack.h BluetoothManager.h BluetoothDevice.h CTStructures.h 我从这里得到这些头文件。 添加BluetoothManager.framework到我的项目,使用普通的方法target->Build Phases->Link Binary with Libraries 。 在我的ViewController.h文件中,我导入了头文件 #import "BluetoothManager.h" 就是这个。 简单地说,我正在学习本教程,但是为了防止教程失败,在这里添加了一些步骤。 我的问题 我还没有进入编码部分。 当我试图编译上述给定的设置,我得到错误 找不到NSObject.h文件 在我作为头添加到框架的BluetoothManager.h文件中。 有任何想法吗?

iOS:失去蓝牙连接

我成功地使用蓝牙连接iPhone和Mac。 iPhone是中央,Mac是外围设备。 连接后,两者都可以通信(iPhone正在订阅一些由Mac广告的特性)。 但是,在一些(随机的)时间之后,iPhone的蓝牙图标变灰,iPhone不再接收来自Mac的蓝牙消息。 为什么? 我怎样才能使沟通最后? 编辑:这里是错误:由didDisconnectPeripheral : 域= CBErrorDomain代码= 6“连接意外超时。