La información de la etiqueta de google-play-services dice que es "una biblioteca utilizada por las aplicaciones de Google y muchas aplicaciones de terceros para proporcionar ubicación y funcionalidad social".
¿Significa esto que si me niego a proporcionar la ubicación a una aplicación, dicha aplicación aún puede recuperar mi ubicación a través de Google Play Services?
Según tengo entendido, hay 2 formas de recuperar la ubicación actual desde la perspectiva de un desarrollador de Android:
La API de ubicación del marco de trabajo de Android: android.location
esta es "la forma antigua" y se recomienda a los desarrolladores que adapten la API más nueva:
La API de ubicación de los servicios de Google Play.
Para acceder a los primeros, una aplicación tiene que solicitar permisos para usarlos :
A menos que se indique lo contrario, todos los métodos de API de ubicación requieren los permisos ACCESS_COARSE_LOCATION o ACCESS_FINE_LOCATION.
Para acceder a este último, los desarrolladores aún deben solicitar los mismos permisos :
Las aplicaciones que usan servicios de ubicación deben solicitar permisos de ubicación. Android ofrece dos permisos de ubicación: ACCESS_COARSE_LOCATION y ACCESS_FINE_LOCATION. El permiso que elija determina la precisión de la ubicación devuelta por la API. Si especifica ACCESS_COARSE_LOCATION, la API devuelve una ubicación con una precisión aproximadamente equivalente a una manzana de la ciudad.
Entonces, no, el servicio no ofrece una forma de eludir las verificaciones de permisos. Ambas formas requieren los mismos permisos.
No, el servicio/bibliotecas aún requieren solicitudes de permisos como todo lo demás.
Consulte la documentación del SDK de Play Services para obtener más información. Pero algunos extractos relevantes:
...Una vez que haya declarado las API que desea usar... asegúrese de tener el permiso necesario antes de llamar a una API.
...
Si la llamada devuelve falso, significa que no se otorgaron los permisos y debe usar
requestPermissions
para solicitarlos.... cuando llamas
connect()
, los servicios de Google Play validan que tiene todos los permisos necesarios. ...connect()
falla cuando faltan los grupos de permisos que necesitan los servicios de Google Play.
Grimorio