简介
移动热点判别功能指的是,可以通过接口调用,判别当前设备所链接的WI-FI是否为移动热点。识别成功率可达到95%以上;识别正确率可达到98%。
使用场景:通过判断当前用户手机的上网状态是否为WI-FI、是否为WI-FI移动热点,从而执行对应的业务逻辑。
例如:视频等类型的应用,可以通过判别当前用户所连接的WI-FI是否是移动热点,从而控制是否进行视频的自动播放,或者给予用户提示性信息。
注意: 需要用到识别移动热点的开发者,ios12之后需要在xcode上增加配置,enable the Access WiFi Information capability。
实现移动热点识别能力的方法如下:
1引入头文件
在调用定位功能的类中引入 BMKLocationComponent.h 这个头文件
#import <BaiduMapAPI_Location/BMKLocationComponent.h>
2配置AK
在调用定位时,需要添加AK,需要注意的是请在 SDK 任何类的初始化以及方法调用之前设置正确的 AK。设置AK的方式如下:
[[BMKLocationAuth sharedInstance] checkPermisionWithKey:@"输入AK" authDelegate:self];
3初始化locationManager
_locationManager = [[BMKLocationManager alloc] init]; _locationManager.delegate = self;
4实现BMKLocationManagerDelegate的方法
- (void)BMKLocationManager:(BMKLocationManager * _Nonnull)manager didUpdateNetworkState:(BMKLocationNetworkState)state orError:(NSError * _Nullable)error { NSString * result = nil; if (error) { result = @"识别结果:当前网络状态无法判断"; } else { switch(state) { case BMKLocationNetworkStateWifi: result = @"识别结果:当前网络状态是wifi"; break; case BMKLocationNetworkStateWifiHotSpot: result = @"识别结果:当前网络状态是WI-FI移动热点"; break; case BMKLocationNetworkStateMobile4G: result = @"识别结果:当前网络状态是4G"; break; case BMKLocationNetworkStateMobile2G: result = @"识别结果:当前网络状态是2G"; break; case BMKLocationNetworkStateMobile3G: result = @"识别结果:当前网络状态是3G"; break; default: result = @"识别结果:当前网络状态无法判断"; break; } } }
5触发调用
[_locationManager requestNetworkState];