【发布时间】:2015-03-26 01:05:38
【问题描述】:
我正在尝试创建一个可以检测信标的应用程序。我已经购买了 SENSORO 信标。我按照 SENSORO iOS SDK guide 的说明进行操作。
问题是它不起作用,是的,我当然已经与 SENSORO 应用商店应用程序进行了交叉验证,并且同一设备可以检测到三个 SENSORO iBeacon。
奇怪的是,即使是网站上列出的相同演示示例也不起作用。
以上示例是使用 SENSORO SDK for iOS 的指南。
我尝试了正常的检测 iBeacons 的方法,但仍然无法成功。是的,用于配置 iBeacon 的 SENSORO 应用商店应用程序能够识别具有相同设备的信标 (SENSORO Beacon Utility)。
临时资料有什么关系吗?我正在使用我的另一个项目的临时配置文件。
代码:
#import "ViewController.h"
#import "SBKBeacon.h"
#import "SBKBeaconManager.h"
#import "SBKBeaconManager+Cloud.h"
@interface ViewController () <SBKBeaconManagerDelegate>
@property (nonatomic, strong) SBKBeaconID *beaconID;
@property (nonatomic, strong) CLLocationManager *locationManager;
@end
- (void)beaconManager:(SBKBeaconManager *)beaconManager didRangeNewBeacon:(SBKBeacon *)beacon {
NSLog(@"Enter new beacon %@",beacon.beaconID.stringRepresentation);
NSLog(@"%@",beacon.serialNumber);
NSLog(@"%d",beacon.proximity);
NSLog(@"%@",beacon.beaconID);
}
- (void)beaconManager:(SBKBeaconManager *)beaconManager beaconDidGone:(SBKBeacon *)beacon {
NSLog(@"Leave a beacon %@",beacon.beaconID.stringRepresentation);
NSLog(@"%@",beacon.serialNumber);
NSLog(@"%d",beacon.proximity);
NSLog(@"%@",beacon.beaconID);
}
- (void)beaconManager:(SBKBeaconManager *)beaconManager scanDidFinishWithBeacons:(NSArray *)beacons {
NSLog(@"Scan finish...");
NSLog(@"beacons :%@",beacons);
}
- (void)viewDidLoad {
[super viewDidLoad];
_beaconID = [SBKBeaconID beaconIDWithProximityUUID:SBKSensoroDefaultProximityUUID];
[[SBKBeaconManager sharedInstance] startRangingBeaconsWithID:self.beaconID wakeUpApplication:YES];
[[SBKBeaconManager sharedInstance] requestAlwaysAuthorization];
[SBKBeaconManager sharedInstance].delegate = self;
}
【问题讨论】:
-
只是检查一下,弹出请求权限(由requestAlwaysAuthorization产生)显示并且您同意了吗?
-
是的,我确实解决了这个问题,并且它出现了。
-
我在不同的设备上做了一些测试,发现问题出在 iOS 设备上。我有 iPhone 4S(iOS 版本 7.1 (11D167)),因为没有检测到这个特定的设备信标,否则它非常适合 iOS 和 Android 设备。
标签: ios objective-c cllocationmanager ibeacon