百度ios定位sdk支持定位防作弊功能,挖掘各类模拟定位方式对百度定位sdk内部信息的影响特征,综合多源数据分析,有效的识别模拟定位结果,为签到、运动、游戏等场景的位置真实性提供有力保障。
实现定位防作弊能力的方法如下:
在调用定位功能的类中引入 bmklocationcomponent.h 这个头文件。
#import<bmklocationkit/bmklocationcomponent.h>
在调用定位时,需要添加ak,需要注意的是请在 sdk 任何类的初始化以及方法调用之前设置正确的 ak。设置ak的方式如下:
[[bmklocationauth sharedinstance] checkpermisionwithkey:@"输入ak"authdelegate:self];
self.locationmanager=[bmklocationmanagernew];self.locationmanager.delegate= self;
调用 bmklocationmanager 的 requestlocationwithregeocode:withnetworkstate:completionblock: 方法,请求一次定位。
[self.locationmanager requestlocationwithregeocode:yeswithnetworkstate:yescompletionblock:^(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){casebmkmocklocationprobabilitynone:result = @"当前定位信息作弊概率为0";break;casebmkmocklocationprobabilitylow:result = @"当前定位信息作弊概率为低概率";break;casebmkmocklocationprobabilitymid:result = @"当前定位信息作弊概率为中概率";break;casebmkmocklocationprobabilityhigh: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){casebmkmocklocationprobabilitynone:result = @"当前定位信息作弊概率为0";break;casebmkmocklocationprobabilitylow:result = @"当前定位信息作弊概率为低概率";break;casebmkmocklocationprobabilitymid:result = @"当前定位信息作弊概率为中概率";break;casebmkmocklocationprobabilityhigh:result = @"当前定位信息作弊概率为高概率";break;default:break;}}}}
上一篇
下一篇
本篇文章对您是否有帮助?