Tag: ibeacon

iBeacon基础和实施

iBeacon是一种低能耗的蓝牙设备,由Apple在iOS 7上推出。iBeacon类似于室内位置的GPS导航。 它是一种无线传感器设备,可用于在商店中感知位置或上下文。 它还可以用于在移动设备上发送要约或促销的通知(例如,您可能走过商店并在移动设备上收到折扣优惠券)。 苹果公司推出了低功耗蓝牙设备iBeacon。 iBeacon充当低功率设备的发送器,可将附近的iOS 7设备通知其存在。 就像室内位置的GPS导航和无线传感器设备一样,它们可以用作商店或大型购物中心的位置和上下文感知。 iBeacon还可以通过其推送通知用于促销活动,并将促销广告发送到附近的iOS设备。 目前,iBeacon已在245家零售商店和餐馆中使用,这有助于为其商店吸引更多人潮。 另一家大型企业PayPal最近宣布了Beacon,它将允许人们通过PayPal进行付款。 iBeacon价格更便宜,而且电池效率令人难以置信,价格从5美元到33美元不等。 截至目前,iBeacon在包括印度在内的许多国家/地区均不可用。 但是,我们作为一个团队很想对这项新技术进行试验和测试,并希望通过BOYD食品订购应用程序来实现广播和接收目的。 为此,我们将iOS设备转换为iBeacon,并通过我们的应用程序进行了测试,是的,我们取得了成就。 我知道您很好奇我们是如何做到的。 以下是详细的说明和代码,可帮助您创建iBeacon。 首先,您需要创建一个虚拟UUID,以便在广播者和接收者之间进行通信。 您可以从终端获取它,只需运行uuidgen以生成UUID。 让我们开始信标广播。 在Xcode中创建一个单一视图应用程序; 将其命名为“信标广播器”。 在项目中添加“ CoreBluetooth”和“ CoreLocation”框架。 现在进入“ ViewController.h”文件,导入“ CoreBluetooth”和“ CoreLocation”框架,声明“ CLBeaconRegion”和“ CBPeripheralManager”对象,添加一个UILabel插座以显示状态,并添加一个NSDictionary获取信标数据。 您的“ ViewController.h”文件将如下所示: 1#import 2#import 3#import 4 5@ interface ViewController : UIViewController 6 7@property (weak, nonatomic) IBOutlet UILabel *statusLabel; 8@property (strong, nonatomic) CLBeaconRegion *myBeaconRegion; 9@property […]

iBeacons和iOS:Rantmedia Hack Day

什么是iBeacon? iBeacon是由Apple开发的协议,该协议利用低功耗蓝牙将信息广播到收听设备和应用程序。 iBeacon广播三个重要信息:其UUID,主要ID和次要ID。 这些用于识别单个信标,并允许应用程序在靠近信标的情况下做出适当响应。 例如,事件中心可以设置一些iBeacon并将它们配置为使用相同的UUID。 在这种情况下,UUID标识信标的所有者。 每个信标可​​以被赋予不同的主要或次要ID。 然后,应用程序可以侦听具有给定UUID的任何信标,并在进入信标覆盖的每个不同区域时执行操作。 对于我们的Hack Day,我们使用Android应用程序BeaconToy设置了多个具有不同值的信标。 iBeacon与iOS集成 苹果在其CoreLocation和CoreBluetooth框架中包括对iBeacons的支持。 如果要编写只需要侦听iBeacon的应用程序,则需要使用CoreLocation,而如果要从应用程序中作为iBeacon广播,则需要CoreBluetooth框架。 出于Hack Day的目的,我们正在编写一个仅监听和响应信标而不是广播的应用程序。 构建一个iBeacons应用 如果您想继续,可以找到我们在Github上构建的应用程序。 总览 该应用程序使用CoreLocation的CLLocationManager监视CLBeaconRegion。 输入信标区域时,它将开始对区域内的所有信标进行测距。 远程信标以其UUID,主要和次要ID以及相对接近程度显示在表格视图中。 当输入区域时,如果应用程序未激活,我们还使用后台信标监视来显示通知。 创建一个新项目,并使用UITableViewController设置基本UI。 设置CoreLocation 在开始监视之前,我们需要设置视图控制器以导入CoreLocation框架,并设置CLLocationManager并使表视图控制器符合CLLocationManagerDelegate协议: 导入 UIKit 导入 CoreLocation 类 ViewController : UITableViewController , CLLocationManagerDelegate { 让 locationManager = CLLocationManager () 覆盖 func viewDidLoad (){ 超级 .viewDidLoad() locationManager.delegate = 自我 如果 CLLocationManager .authorizationStatus()!= .authorizedAlways { […]

ibeacon如何在后台工作?

我想创build一个订单,当有人进入应用程序背景上的iBeacon区域,但我有一个问题,当在后台的应用程序。 我知道如果用户打开“位置”和“蓝牙”进入区域,应用程序将检测到ibeacon.But进入区域后,用户打开“蓝牙”,应用程序无法接收到通知(有时工作),可以调用函数locationManager:(CLLocationManager *)manager didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region所以无法创build订单。 有没有人有经验呢?

iOS无法在前台findiBeacon

嗨〜我正在学习使用CLLocationManager来检测iBeacon。 我读了这篇文章: http : //developer.radiusnetworks.com/2013/11/13/ibeacon-monitoring-in-the-background-and-foreground.html它说,startRangingBeaconsInRegion将使系统扫描灯塔每一秒。 我testing,这是正确的。 但是,如果程序只执行startMonitoringForRegion而不是startRangingBeaconsInRegion,则会出现问题。 我的程序可以在第一次启动信标硬件的时候find信标,在停止信标后,调用didExitRegion函数。 但是当我第二次启动信标后,程序根本找不到它(执行didEnterRegion)。 我等了一个小时。 我用来testing的硬件是带iOS 8.1.2的iPhone 5和radBeacon USB。 这是我的代码。 #import "ViewController.h" #import <CoreLocation/CoreLocation.h> @interface ViewController () <CLLocationManagerDelegate> @property (retain, nonatomic) IBOutlet UITextView *textView; @property (strong, nonatomic) NSMutableString *myLog; @property (strong, nonatomic) CLLocationManager *locationManager; @property (strong, nonatomic) CLBeaconRegion *beaconRegion; @end @implementation ViewController – (void)viewDidLoad { [super viewDidLoad]; [self startBeaconMonitoring]; } […]

连接到IBeacon的问题

我用这个例子来连接IBeacon。 我相信我的UUID是正确的。 但是事件RegionEntered从不被调用,而DidRangeBeacons事件中的e.Beacons.Length始终为0。 locationMgr.DidRangeBeacons += (object sender, CLRegionBeaconsRangedEventArgs e) => { var a = e.Region; if (e.Beacons.Length > 0) { //make notification } } 与上述示例不同的是,我使用IBeacon而不是iPad。

为什么它找不到我的信标?

我正在编写需要在设备周围查找BLE信标的Android和iOS应用程序。 当我从Android运行我的代码时,它在我所在的房间里find了几个信标。 我有8个灯塔。 当我从iPhone运行信标代码时,它将返回一个正好为0的信标列表。 这是我的代码: – (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. self.locationManager = [[CLLocationManager alloc] init]; self.locationManager.delegate = self; [self initRegion]; [self locationManager:self.locationManager didStartMonitoringForRegion:self.beaconRegion]; } – (void)locationManager:(CLLocationManager *)manager didStartMonitoringForRegion:(CLRegion *)region { [self.locationManager startRangingBeaconsInRegion:self.beaconRegion]; } – (void)initRegion { NSUUID *uuid = [[NSUUID alloc] initWithUUIDString:BEACONUUID]; self.beaconRegion = [[CLBeaconRegion alloc] […]

Qualcomm Gimbal Geofence Communication

我在Gimbal Manager中创build了Geofences,并且还能够触发地点事件。 我的问题是通过Gimbal Manager与iPhone设备进行通信。 委托方法正在调用 – (void)didGetContentDescriptors:(NSArray *)contentDescriptors 但contentDescriptors数组为null。 我无法确定当触发Geofence通讯时为什么我无法获取内容。 提前致谢。

用于iBeacon设备的UUID,主要,次要设置

我有一些可以通过网站configuration的万能的iBeacon设备。 我可以将新的uuid,major,minor分配给我拥有的任何iBeacon设备。 我感到困惑的是,iBeacon设备如何知道这些configuration已经改变,以便能够播放? iBeacon设备可以与networking服务器通信(这似乎没有任何意义)? PS:我没有调用任何Gimbal API,因为我将它们设置为iBeacontypes。 有人可以解释吗? 谢谢

iBeacons:检测背景中的接近度变化

我试图了解你应该如何检测背景中的接近度变化。 我进入范围的唯一窗口是当我进入一个地区,但这可能是相当遥远的。 当用户input“near”或“immidiate”时,我想要提供一些东西,但是如果您在远处得到“didEnterRegion”,而不是站起来,然后靠近信标灯,则不会再有测距时间,因为您仍然在同一地区。 有没有办法延长“测距”时间让用户靠近灯塔,或者可以让“enterRegion”发生在与“远”不同的邻近处?

如何在xcode(swift)和phonegap中将iPhone作为背景灯光运行

我设法创build了一个应用程序,将手机变成信标发射器。 它在xcode(Swift)和phonegap上工作正常。 对我来说,下一步就是让它在后台作为信号灯工作(我正在为iOS 10开发)。 我发现这个在线类似的问题,但所有这些都过时了,即老ios,objective-c和outdate插件 真的很感激,如果有人可以提供我一个工作的例子,或指导我在我的代码中更改xcode(wift)和phonegap Xcode(Swift 3) import UIKit import CoreLocation import CoreBluetooth class ViewController: UIViewController,CLLocationManagerDelegate,CBPeripheralManagerDelegate,UITextFieldDelegate{ var locationManager = CLLocationManager() var startLocation: CLLocation! var localBeacon: CLBeaconRegion! var beaconPeripheralData: NSDictionary! var peripheralManager: CBPeripheralManager! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. locationManager.delegate = self locationManager.requestAlwaysAuthorization() […]