百度iOS定位SDK支持定位防作弊功能,挖掘各类模拟定位方式对百度定位SDK内部信息的影响特征,综合多源数据分析,有效的识别模拟定位结果,为签到、运动、游戏等场景的位置真实性提供有力保障。
实现定位防作弊能力的方法如下:
在调用定位功能的类中引入 BMKLocationComponent.h 这个头文件。
#import <BMKLocationkit/BMKLocationComponent.h>
在调用定位时,需要添加AK,需要注意的是请在 SDK 任何类的初始化以及方法调用之前设置正确的 AK。设置AK的方式如下:
[[BMKLocationAuth sharedInstance] checkPermisionWithKey:@"输入AK" authDelegate:self];
self.locationManager = [BMKLocationManager new];self.locationManager.delegate = self;
调用 BMKLocationManager 的 requestLocationWithReGeocode:withNetworkState:completionBlock: 方法,请求一次定位。
[self.locationManager requestLocationWithReGeocode:YES withNetworkState:YES completionBlock:^(BMKLocation * _Nullable location, BMKLocationNetworkState state, NSError * _Nullable error) {if (error) {NSLog(@"locError:{%ld - %@};", (long)error.code, error.localizedDescription);}NSString *result;if (location.location) {//得到定位信息,判断作弊概率switch (location.mockProbability) {case BMKMockLocationProbabilityNone:result = @"当前定位信息作弊概率为0";break;case BMKMockLocationProbabilityLow:result = @"当前定位信息作弊概率为低概率";break;case BMKMockLocationProbabilityMid:result = @"当前定位信息作弊概率为中概率";break;case BMKMockLocationProbabilityHigh:result = @"当前定位信息作弊概率为高概率";break;default:break;}}}];
调用BMKLocationManager提供的startUpdatingLocation方法实现。代码如下
[self.locationManager startUpdatingLocation];
实现BMKLocationManagerDelegate的方法
- (void)BMKLocationManager:(BMKLocationManager * _Nonnull)manager didUpdateLocation:(BMKLocation * _Nullable)location orError:(NSError * _Nullable)error {if (error) {NSLog(@"locError:{%ld - %@};", (long)error.code, error.localizedDescription);}NSString * result;if (location) {if (location.location) {//得到定位信息,判断作弊概率switch (location.mockProbability) {case BMKMockLocationProbabilityNone:result = @"当前定位信息作弊概率为0";break;case BMKMockLocationProbabilityLow:result = @"当前定位信息作弊概率为低概率";break;case BMKMockLocationProbabilityMid:result = @"当前定位信息作弊概率为中概率";break;case BMKMockLocationProbabilityHigh:result = @"当前定位信息作弊概率为高概率";break;default:break;}}}}
上一篇
下一篇
本篇文章对您是否有帮助?