2 developerwab developerWab 于 2013.01.30 13:52 提问

检测用户是否拒绝使用默认位置

请问一下,检测ios的用户是否拒绝开启默认位置,能实现么?

我需要在实现检测结果,然后根据他们的选择显示不同的视图控制器。

请赐教,谢谢。

2个回答

langyufei
langyufei   2013.01.30 14:19
已采纳

假设你使用LocationManager,那么在delegate中有个方法是

- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error

你来检测这个error.code是什么,具体参见apple官方文档Core Location Constants Reference中CLError部分

enum {
kCLErrorLocationUnknown  = 0,         // location is currently unknown, but CL will keep trying
kCLErrorDenied,                       // CL access has been denied (eg, user declined location use)
kCLErrorNetwork,                      // general, network-related error
kCLErrorHeadingFailure,               // heading could not be determined
kCLErrorRegionMonitoringDenied,       // Location region monitoring has been denied by the user
kCLErrorRegionMonitoringFailure,      // A registered region cannot be monitored
kCLErrorRegionMonitoringSetupDelayed, // CL could not immediately initialize region monitoring
kCLErrorRegionMonitoringResponseDelayed, // While events for this fence will be delivered, delivery will not occur immediately
kCLErrorGeocodeFoundNoResult,         // A geocode request yielded no result
kCLErrorGeocodeFoundPartialResult,    // A geocode request yielded a partial result
kCLErrorGeocodeCanceled,              // A geocode request was cancelled
kCLErrorDeferredFailed,               // Deferred mode failed
kCLErrorDeferredNotUpdatingLocation,  // Deferred mode failed because location updates disabled or paused
kCLErrorDeferredAccuracyTooLow,       // Deferred mode not supported for the requested accuracy
kCLErrorDeferredDistanceFiltered,     // Deferred mode does not support distance filters
kCLErrorDeferredCanceled,             // Deferred mode request canceled a previous request

};
typedef NSInteger CLError;

developerWab
developerWab 谢谢
5 年多之前 回复
redCoral_
redCoral_   2013.01.30 14:51

用下面的delegates方法:

- (void)locationManager:(CLLocationManager*)manager didFailWithError:(NSError*)error
{
    if([error code]== kCLErrorDenied)
        self.locationDenied = YES;

        switch ([error code]) {
        // "Don't Allow" on two successive app launches is the same as saying "never allow". The user
        // can reset this for all apps by going to Settings > General > Reset > Reset Location Warnings.
        case kCLErrorDenied:
            [appDelegate showAllowGPSLocationView];
        default:
            break;
    }

    self.locationDefined = NO;
}

在AppDelegate中创建showAllowGPSLocationView方法,还要访问GPS定位。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
百度地图API,用户拒绝获取地理位置getStatus()还是等于BMAP_STATUS_SUCCESS
1、业务场景:百度地图 JavaScript API中有一个方法是通过浏览器定位,getCurrentPosition。但是用户拒绝或者允许获取地理位置,this.getStatus()都是0; var myposition; var myposition_lng; var myposition_lat; var geolocation = new BMap.Geoloca
检测ios的用户是否拒绝开启默认位置的实现
原问题来自于CSDN问答频道,更多解决方案见:http://ask.csdn.net/questions/1295   原问题描述: 请问一下,检测ios的用户是否拒绝开启默认位置,能实现么? 我需要在实现检测结果,然后根据他们的选择显示不同的视图控制器。 解决方案: 假设你使用LocationManager,那么在delegate中有个方法是 - (void)locationMan
ios 判断用户是否开启定位权限并跳转设置
//请开启定位服务 CLAuthorizationStatus status = [CLLocationManager authorizationStatus]; if (kCLAuthorizationStatusDenied == status || kCLAuthorizationStatusRestricted == status) { //读取本地
如何判断用户是拒绝还是允许通讯录权限?
一般情况下,当我们不想让app读取我们通讯录的内容的时候,会用try catch ,拒绝了返回为空
判断应用是否允许定位当前位置
判断用户是否开启了定位功能:if ([CLLocationManager locationServicesEnabled] &&         ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusAuthorized          || [CLLocationManager authorizationStat
android用户拒绝权限
------------------------------------------------HNQ------------------------------------------------------------------- 第一次写博客 录音时如何判断android用户是否拒绝了权限,网上找了很多资料没找到,通过研究QQ等应用的处理方式,有了一个不太成熟的方案。 checkpe
定位权限是否开启
应用判定定位权限是否开启
微信小程序不获取用户直接打开默认设置地图
微信小程序不获取用户直接打开默认设置地图
IOS 检测用户是否开启定位 和 利用URL Scheme跳转到系统设置Settings
开发中经常会碰到检测 用户是否开启定位权限  和 获取图片权限 开启系统通知 等 有时检测到用户系统级关闭,需要去设置里去开启。 通过URL Scheme的方式打开内置的Settings,代码如下: 以下是内置的Settings的URL Scheme:   About — prefs:root=General&path=About Accessibility — prefs:r
安卓检查APP是否被用户拒绝调用摄像头和麦克风权限
安卓棉花糖已经支持开发者对权限提醒做一些操作了,但是目前大部分机型仍旧使用的是4.4,5.1的操作系统,那么这些系统是不允许APP强制获取用户隐私权限的。但是我们在开发中难免遇到调用摄像头和麦克风,用户拒绝了调用权限,我们又该如何得知。