Tag: ibeacon

我可以使用iOS模拟器开发iBeacon应用程序吗?

我试图开发一个iOS应用程序来接受iBeacon通知。 如果iOS模拟器可以使用MacBook的BlueToothfunction来接收iBeacon消息,那么这很方便。 有没有一种方式,iOS模拟器可以接受来自外部真正的iBeacon设备的通知?

iBeacon协议澄清

我想了解更多关于新的苹果iBeacon协议,以及如何适用于其他设备。 我已经看到协议本身已经被逆向工程:这是个好消息,但是我还有一些疑问关于协议。 该协议devise为允许自定义文本消息发送到接收方客户端? 如“欢迎来到我的店”而不是靠近某个灯塔? 我可以看到很多其他的问题,但是我对将该文本(如Hex)注入协议的位置有点困惑。 什么是iBeacon蓝牙configuration文件 使用BlueZ堆栈作为外设(广告客户) 它看起来像协议设置为只有真正广播UUID和主要/次要集的信标,然后客户端应用程序需要做的事情。 但我希望它能更多地反映一个自定义的消息,如“进入一个免费的咖啡”或类似的东西…是可能使用iBeacon协议,还是我需要只使用标准的蓝牙LE?

即使应用程序在相同的位置,信标的接近范围也会来回变化

信标接近范围将接近响应更改为近即时 – 即时,即使在ios设备保持在同一地点。 当我接近响应时,我打开一个视图。 我得到了接近的响应来回,近 – 即时然后近。 它一次又一次地显示出来的观点 我们如何解决这个问题。 有没有任何事件处理程序。 谢谢。

在iOS 10的背景CoreBluetooth广告

首先:我有一台iPad Air 2和一台iPhone 7.为了进一步阅读,我们估计该应用在iPad上处于活动状态,并在iPhone上以后台模式打开。 该应用程序是完全相同的,即使使用相同的蓝牙服务UUID和相同的DataLocalNameKey。 我想写一个应用程序,可以在后台广告一个蓝牙服务,并能够发现这个服务(最佳的背景也)。 正如我已经阅读,我不能使用苹果信标技术,因为它只能在背景附近扫描/通知信标(我testing这个,工作正常),但不能做广告。 所以我开始使用CoreBluetooth所描述的SO回答的原因那里有可能在后台做广告。 我的应用程序调用iPhone上的didDiscoverPeripheral方法(应用程序在后台),所以它检测到了iPad。 CBPeripheralManager在iPhone上的isAdvertising属性是true 。 但didDiscoverPeripheral没有在iPad上调用。 我有点困惑。 其中一个select是我的iPad不能够检测到iPhone由于某种原因,或者我的iPhone在撒谎,而不是广告。 所以我觉得我只是一个愚蠢和谷歌search“CoreBluetoothdebugging应用程序”一点点。 我find了附近和AltBeacon 。 而与这两个应用程序的行为是一样的! 如果您背景(按Home /睡眠button)的广告应用程序,浏览应用程序无法发现它了。 如果你打开应用程序的背景,它会立即发现它。 这两个应用程序都提到可能与他们在后台播放。 难道我做错了什么; 这是预期的行为? 我误解了框架吗? 你能证实这种行为吗? 为了确认这一点,最快的方法是在两台设备上安装Vicinity (您必须将NSBluetoothPeripheralUsageDescription添加到设备上),设置一台设备进行广播,然后按主页button。

使用不同的UUID检测iBeacon

我试图使用UUID作为特定信标的标识符(在这种情况下使用电话)。 我明白,主要和次要的是用来做到这一点,但我宁愿使用UUID,或标识符string。 这样说,有无论如何扫描信标,无论使用CLBeacon API的UUID?

iBeacon:didEnterRegion和didDetermineState(CLRegionStateInside)之间有什么区别

我想在用户进入某个地区时发布通知。 但是,我很困惑,因为相同的两个CLLocationManagerDelegate方法。 我应该如何正确使用这两种方法? 有些人说,如果应用程序在该地区开始,则需要“didDetermineState”方法来启动区域观察。 谢谢, – (void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region { [self sendNotification:@"didEnterRegion"]; } – (void)locationManager:(CLLocationManager *)manager didDetermineState:(CLRegionState)state forRegion:(CLRegion *)region { switch (state) { case CLRegionStateInside: [self sendNotification:@"didEnterRegion"]; break; case CLRegionStateOutside: break; case CLRegionStateUnknown: break; default: break; } }

如何限制信标的广告范围?

是否有可能限制信标的范围,以便只有在某个近距离(或接近度)内的设备才能识别并连接到信标? 比方说,0.5米以外的设备应该不能看到或连接到信标。 我正在使用iOS设备作为信标。 在Apple的CoreLocation API中,在CLBeaconRegion类中有一个名为peripheralDataWithMeasuredPower的方法,它说: peripheralDataWithMeasuredPower:检索可用于将当前设备通告为信标的数据。 (NSMutableDictionary *)peripheralDataWithMeasuredPower:(NSNumber *)measuredPower 参数: measuredPower :设备的接收信号强度指示器(RSSI)值(以分贝测量)。 该值代表距离一米处的信标的实测强度,并在测距期间使用。 指定nil以使用设备的默认值。 这可以用来限制信标的范围吗? 如果是,我无法理解如何决定为measurePower参数设置的值? 他们试图说什么…value represents the measured strength of the beacon from one meter away.. 请原谅,如果这是一个非常基本的问题。 我最近开始iOS开发,并会感谢您的帮助。 谢谢。

是否有可能发现标准的iOS库Gimbal信标

我正在试图用标准的iOS库来确定“发现”Gimbal信标。 根据Radius Networks和Blue Sense Networks的说法,Gimbal信标不会广播标准的iBeacon格式的协议,因此如果不使用Gimbal iOS SDK就无法发现。 另一方面,万向节信标广播滚动的encryption码,以确保只有具有正确权限的用户才能看到信标的信息,基本上这意味着每当万向节信标发出信号时,它就会包含不同的数据,而且任何启用BLE的智能手机可以看到万向节灯塔的广告,但是由于它们在每一次广播中都会发生变化,这意味着智能手机会多次检测到相同的物理信标,并且会将每个检测视为一个不同的设备,所以为了正确使用万向节信标,而是通过他们专有的SDK来完成。“ – 蓝色感觉networking 我见过有关访问这些信标的一些相互矛盾的陈述,但我没有看到任何具体的例子。 可能吗? 有没有?

locationManager:rangingBeaconsDidFailForRegion:withError:kCLErrorDomain 16

我读过CLLocationManager kCLErrorDomain代码? 以及Apple Docs 我调用startRangingBeaconsInRegion之前检查以确保范围可用:我还检查在locationManager中的range是否可用:rangingBeaconsDidFailForRegion:withError:method。 两次都返回true。 当我得到的监视区域的集合,我的信标是在集(所以注册监测工作)。 我已经看到,错误16可能意味着测距不可用,蓝牙可能closures,位置服务可能会closures,飞行模式可以打开,我已经检查了他们所有都可用并正在运行(显然不是飞行模式)。 什么可能导致测距失败,每次我运行应用程序?

测距信标只适用于应用程序运行?

我很难得到这个工作,当应用程序没有运行。 我有locationManager:didRangeBeacons:inRegion:实现,当应用程序在前台或后台运行时调用它,但是当我退出应用程序并locking屏幕时,它似乎没有任何操作。 位置服务图标消失,我不知道我进入了一个灯塔范围。 LocalNotification是否仍然有效? 我有位置更新和使用在背景模式(XCode 5)中select的蓝牙LE配件,我不认为我需要它们。 任何帮助不胜感激。 -(void)watchForEvents { // this is called from application:didFinishLaunchingWithOptions id class = NSClassFromString(@"CLBeaconRegion"); if (!class) { return; } CLBeaconRegion * rflBeacon = [[CLBeaconRegion alloc] initWithProximityUUID:kBeaconUUID identifier:kBeaconString]; rflBeacon.notifyOnEntry = YES; rflBeacon.notifyOnExit = NO; self.locationManager = [[CLLocationManager alloc] init]; self.locationManager.delegate = self; [self.locationManager startRangingBeaconsInRegion:rflBeacon]; [self.locationManager startMonitoringForRegion:rflBeacon]; } -(void)locationManager:(CLLocationManager *)manager didRangeBeacons:(NSArray *)beacons […]