Region Monitoring is not denied by user even though CLLocationManager isMonitoringAvailalbeForClass returns YES

Originator:aaronconnolly
Number:rdar://16078124 Date Originated:2/15/2014
Status:Open Resolved:
Product:iOS Product Version:7.0.4
Classification: Reproducible:Always
 
Summary:
[CLLocationManager isMonitoringAvailableForClass:[CLRegion class]] returns YES ... even when Background App Refresh is disabled. It should return NO, and the documentation should reflect this.

On iOS 7, if you do not enable Background App Refresh for your device, but rather enable Location Services for your device and your app interrogates the state of the regions in your application, CLLocationManager's monitoringDidFailForRegion will be called with the error: kCLErrorRegionMonitoringDenied - "Access to the region monitoring service was denied by the user." Unfortunately behind the scenes, region monitoring services seem to require Background App Refresh so that the app then has the ability to operate in the background, but `isMonitoringAvailableForClass` returns YES.

Steps to Reproduce:
On iOS 7, if you do not enable Background App Refresh for your device, but rather enable Location Services for your device and your app and attempt to interrogate the state of the regions in your application CLLocationManager's monitoringDidFailForRegion with kCLErrorRegionMonitoringDenied - "Access to the region monitoring service was denied by the user."

Expected Results:
monitoringDidFailForRegion would not be called and that didDeterminStateForRegion would be called instead. Also, isMonitoringAvailableForClass should return NO if Background App Refresh is disabled.

Actual Results:
monitoringDidFailForRegion is called with the error: kCLErrorRegionMonitoringDenied - "Access to the region monitoring service was denied by the user."

Version:
iOS 7.0.4

Comments


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!