title: How does ACCESS_BACKGROUND_LOCATION introduced in Android Q affect Geofence APIs?
body: <p>In order to use the Geofence API the user <a href="https://developer.android.com/training/location/geofencing#RequestGeofences" rel="noreferrer">has to give</a> the app <code>ACCESS_FINE_LOCATION</code>. This location is considered to be dangerous and can be revoked at any time; once this permission is revoked, the app can not request the geofence updates.</p>
  
  <p>How does <code>ACCESS_BACKGROUND_LOCATION</code> permission fit in this picture? We know for sure that this permission is also <a href="https://developer.android.com/reference/android/Manifest.permission.html#ACCESS_BACKGROUND_LOCATION" rel="noreferrer">dangerous</a> and <a href="https://developer.android.com/preview/privacy/device-location" rel="noreferrer">can be revoked at any time</a>. Does it mean that if we want to register some <code>IntentService</code> to be invoked every time the geofence change occurs, we also have to make sure the user has provided <code>ACCESS_BACKGROUND_LOCATION</code> permission? Or do we need to use this permission <strong>only</strong> if we attempt to get a current location in our own background Service/BroadcastReceiver?</p>
  
  <p>The reason I'm asking this question is that the documentation seems to be a bit vague at this point: the documentation describing the <a href="https://developer.android.com/preview/privacy/device-location" rel="noreferrer">Q Developer Preview</a> mentions that geofencing is one of the use cases for the background location retrieval, while the <a href="https://developer.android.com/training/location/geofencing" rel="noreferrer">Geofencing API page</a> does not mention <code>ACCESS_BACKGROUND_LOCATION</code> among its requirements.</p>