Tag: ibeacon

BLE在后台

我正在使用iBeacon开展一个项目,要求应用程序在后台不断运行。 没关系这个的实用性,请。 iBeacon API不允许应用程序在不同的背景范围内,或者接收除了进入/退出事件以外的任何其他通信(在设置needsDisplay标志的情况下接受,但这不是我所需要的被动方式)。 一旦进入特定区域,似乎无法检测到应用程序完全背景的情况下您最接近哪个信标。 为了破解这个工作,我build立了一些iOS设备作为CoreBluetooth外围设备,插入,并始终保持应用程序可以不断“发现”。 由于用于外围设备的BLEconfiguration文件是“可连接的”,因此应用程序可以在后台无限期地保持,而iBeacon范围可能全天都在。 为了启动,我已经看到了非常短的电池寿命减less。 现在的问题是,隔天左右,应用程序退出并没有被进入/退出事件唤醒,也没有被其他BLE设备在范围内唤醒。 我明白,用这样的解决办法,肯定会有无数的问题,但是对于我来说,我无法缩小可能造成这种情况的因素。 思考?

集成iBeacon和coreBluetooth外设

我想知道是否有可能做广告服务通过coreBluetooth与设备充当外设,也范围为iBeacons,也在后台完成? 本质上,其目的是为信标的范围,然后如果信标是在附近。近或远的范围更新设备通告的服务的特征。 我可以很高兴地完成测距任务,尽pipe我已经发现设备作为一个外设苗条的信息,我想我可以pipe理,但是已经被后台function限制重复停止,我想知道如果这种情况是可能的我花了很多时间去完成一些事情,大家都知道这是不可能的。 我新来Swift和iOS一般,所以我花了很多时间来完成。 任何build议将不胜感激。 谢谢

iBeacon蓝牙didEnterRegion和didExitRegion方法永远不会被触发

非常奇怪的是,在didEnterRegion didExitRegion之后, didEnterRegion和didExitRegion永远不会被触发。 另外, didDetermineState可以按期望触发。 在现阶段,我只根据苹果示例代码演示Airlocated评估iBeacon技术。 因此,我只实现了两个方法,包括文件APLAppDelegate.m中的didEnterRegion和didExitRegion ,如下所示: – (void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region { NSLog(@"Entered region: %@", region); [self sendLocalNotificationForBeaconRegion:(CLBeaconRegion *)region]; } – (void)locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion *)region { NSLog(@"Exited region: %@", region); } 波纹pipe的步骤已经尝试过,但没有效果。 使用iOS7.1重置iPhone5 / iPhone4s 将背景模式和* .plistconfiguration为如下forms: 在项目信息或info.plist – >自定义IOS目标属性 – >。 添加“所需的背景模式”。 在这添加两个项目 – >“应用程序共享数据使用CoreBluetooth”。“应用程序注册的位置更新” 在项目能力 – >有背景模式 。 检查“Loaction更新” 。 检查“用作蓝牙LE配件”。 […]

在IOS 9.1 / Xcode 7.1.1中断了蓝牙

在10.11.1下使用Xcode 7.1.1运行IOS 9.1。 Cut'n'Pasted这个代码从这个教程; 并再次检查与其他几个来源/网站。 http://hatemfaheem.blogspot.ch/2014/12/how-would-you-scan-for-nearby-ble.html 这是我的代码… import Foundation import CoreBluetooth class BLEManager { var centralManager : CBCentralManager! var bleHandler : BLEHandler // delegate init() { self.bleHandler = BLEHandler() self.centralManager = CBCentralManager(delegate: self.bleHandler, queue: nil) } } class BLEHandler : NSObject, CBCentralManagerDelegate { override init() { super.init() } func centralManagerDidUpdateState(central: CBCentralManager) { switch (central.state) { […]

应用程序在后台接收来自信标的信号

我有一个与信号灯交互的iOS应用程序。 也有一个function来检测来自信标的信号,如果信号超出范围,我想存储的东西在数据库中(在这种情况下,核心数据) func updateDistance(distance: CLProximity) { UIView.animateWithDuration(1.0) { [unowned self] in switch distance { case .Unknown: self.view.backgroundColor = UIColor.grayColor() self.distanceReading.text = "No Beacon Signal Detected" updateDatabaseWithLocation() } } } 所以只要应用程序在前台运行,应用程序就可以正常工作。 我的理解是,我也可以在后台的应用程序,当用户不积极使用应用程序,仍然从信标获得信号。 如果是这样,我该如何完成这个任务? 我添加了以下内容到info.plist,仍然没有工作。 也有可能更新数据库以及?

使用iPhone作为iBeacon发射机

我正在试图设置我的iPhone来广播另一个iPhone的iBeacon信号。 应该拿起信号的iPhone正在工作,但我不能让另一个iPhone来传播信号。 我正在学习本教程: https : //www.hackingwithswift.com/example-code/location/how-to-make-an-iphone-transmit-an-ibeacon 这是我的代码: import CoreBluetooth import CoreLocation class iBeaconTransmission: NSObject, CBPeripheralManagerDelegate { var localBeacon: CLBeaconRegion! var beaconPeripheralData: NSDictionary! var peripheralManager: CBPeripheralManager! func initLocalBeacon() { if localBeacon != nil { stopLocalBeacon() } let localBeaconUUID = "placeholder" let localBeaconMajor: CLBeaconMajorValue = 123 let localBeaconMinor: CLBeaconMinorValue = 456 let uuid = NSUUID(UUIDString: localBeaconUUID)! localBeacon […]

locationManager:didRangeBeacons方法未检测到BLE设备

我正在使用Nordic BLE nRF8001开发套件来testingCoreBluetooth。 使用CBCentralManager的方法(例如didDiscoverPeripheral(),didConnectPeripheral()等), 我的iPhone 5能够检测到北欧设备的广告,并连接到它就好了 。 但是,我没有收到来自新的locationManager范围或regionMonitoring方法的任何响应。 下面我会解释我的设置: 1.)首先,我使用传入的外围设备(我的北欧设备),在didDiscoverPeripheral()委托方法中从我的Nordic设备中检索到我的NSUUID。 我为我的北欧设备创build了一个自定义服务,所以假设这个外设是北欧设备。 检索我使用的NSUUID: NSUUID *uuid = [peripheral identifier]; NSString *uuidString = [uuid UUIDString]; //uuidString = 9A8D4C73-152D-BBDA-E4C2-9CE952654645 )接下来,我为北欧设备创build一个信标区域,并创build一个CLLocationManager: self.locationManagerBeacon = [[CLLocationManager alloc] init]; [self.locationManagerBeacon setDelegate:self]; NSUUID *myUUID = [[NSUUID alloc] initWithUUIDString:@"9A8D4C73-152D-BBDA-E4C2-9CE952654645"]; self.beaconRegion = [[CLBeaconRegion alloc] initWithProximityUUID:myUUID identifier:@"nordicRegion"]; self.beaconRegion.notifyEntryStateOnDisplay = YES; 3.)现在我开始监测信标区域 [self.locationManagerBeacon startRangingBeaconsInRegion:self.beaconRegion]; 4.) 问题 :locationManager:didRangeBeacons:inRegion被调用,但信标区域总是空的。 问题:Nordic […]

找不到IBeacon

有困难连接到IBeacon,我已经下载了定位应用程序,但它无法find我的IBeacon。 我也手动configurationibeacon但没有成功。 另一种方法是我已经下载了eBeacon应用程序,而我的IBeacon只能在中央外设中看到,而不在信标列表中。 我认为问题出在设备上。 这里是我的灯塔 。 任何想法将不胜感激。 谢谢! PS我在这里问了关于IBeacon连接问题的问题。

iBeacons:如何获得广播信标功率(txPower)

iBeacons似乎在计算beacon.accuracy和beacon.proximity属性(在这里可以find关于iBeacon通告数据包的详细信息)中使用它们的txPower参数(报告1米距离的RSSI功率)。 但是, CLBeacon类似乎没有txPower的属性。 有没有一种方法可以使用Core Location框架获得txPower,还是需要我去核心蓝牙? 我需要这个的原因是,我想试验自定义信标准确度/接近度计算,以实现非常快的信标立即范围发现。 在这种情况下,从accuracy反向计算txPower不是帮手。

didEnterRegion和didRangeBeacons之间的区别

didEnterRegion和didRangeBeacons在用例方面有什么区别,我的意思是当我应该实现didEnterRegion / didExitRegion和什么时候应该实现didRangeBeacons? 每个委托方法的确切function是什么? 从苹果的文档,这不是很清楚。 – (void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region { } 和 – (void)locationManager:(CLLocationManager *)manager didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region { }