判断本应用是否可以定位

用到地图定位的时候,会判断系统是否允许本应用定位。而[CLLocationManager locationServicesEnabled]检测的是整个iOS系统的位置服务开关,无法检测当前应用是否被关闭 下面有两种方法解决
(1)通过+locationServicesEnabled和authorizationStatus对应的状态判断
if ([CLLocationManager locationServicesEnabled] &&  
 ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusAuthorize || [CLLocationManager authorizationStatus] == kCLAuthorizationStatusNotDetermined)) {  

    //定位功能可用,开始定位  
 [locationManger startUpdatingLocation];  

  }   else if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusDenied){  

        NSlog("定位功能不可用,提示用户或忽略");   

    }  

authorizationStatus对应的状态是枚举类型
kCLAuthorizationStatusNotDetermined: 用户尚未做出决定是否启用定位服务
kCLAuthorizationStatusRestricted: 没有获得用户授权使用定位服务,可能用户没有自己禁止访问授权
kCLAuthorizationStatusDenied :用户已经明确禁止应用使用定位服务或者当前系统定位服务处于关闭状态
kCLAuthorizationStatusAuthorizedAlways: 应用获得授权可以一直使用定位服务,即使应用不在使用状态
kCLAuthorizationStatusAuthorizedWhenInUse: 使用此应用过程中允许访问定位服务

(2)通过CLLocationManagerDelegate的locationManager:didFailWithError:方法去检测
- (void)locationManager: (CLLocationManager *)manager
didFailWithError: (NSError *)error {

NSString *errorString;
[manager stopUpdatingLocation];
NSLog(@”Error: %@”,[error localizedDescription]);
switch([error code]) {
case kCLErrorDenied:
//Access denied by user
errorString = @”Access to Location Services denied by user”;
//Do something…
break;
case kCLErrorLocationUnknown:
//Probably temporary…
errorString = @”Location data unavailable”;
//Do something else…
break;
default:
errorString = @”An unknown error has occurred”;
break;
}
}

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@”Error” message:errorString delegate:self cancelButtonTitle:@”Ok” otherButtonTitles:nil, nil];
[alert show];
[alert release];
}
具体的CLError信息可以看CLLocationManager文档

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
RSSI定位在以下应用场景中具有广泛的应用: 1. 室内定位:RSSI定位可以在室内环境中提供设备的位置信息。通过在室内部署多个信号源,如Wi-Fi路由器或蓝牙信标,可以利用接收到的信号强度来推测设备的位置。这在商场、办公室、展览馆等需要室内定位的场所中具有重要意义。 2. 资产追踪:RSSI定位可以用于跟踪和管理移动资产。例如,在仓库或物流中心中,通过在资产上安装带有Wi-Fi或蓝牙模块的标签,可以利用RSSI定位来实时追踪和监控资产的位置,提高资产管理的效率。 3. 安防监控:RSSI定位可以用于安防监控系统中。通过在关键区域部署多个信号源,可以实时监测设备的位置信息,并根据设备与信号源的距离进行安全区域判断和报警。 4. 定位服务:在移动应用中,如导航、地图和位置共享等应用中,可以利用RSSI定位提供定位服务。通过接收周围Wi-Fi或蓝牙信号的强度,可以估计设备的位置,为用户提供位置相关的服务和功能。 5. 虚拟现实和增强现实:在虚拟现实和增强现实应用中,如室内导航、游戏和交互体验等,RSSI定位可以提供设备的位置信息,使用户能够在虚拟或增强的现实环境中进行准确定位和交互。 综上所述,RSSI定位在室内定位、资产追踪、安防监控、定位服务以及虚拟现实和增强现实等应用场景中具有重要的作用。通过利用接收到的信号强度来推测设备的位置,可以提供定位服务和增强用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员的修养

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值