¿Es Google Play Service una especie de "desvío" de las autorizaciones de mis aplicaciones?

La información de la etiqueta 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?

No soy un desarrollador de Android, pero las aplicaciones normalmente pueden intercambiar información a través de intentos, por lo que no necesitan un permiso expreso. A juzgar por esto, su duda definitivamente puede ser realidad.

Respuestas (2)

Según tengo entendido, hay 2 formas de recuperar la ubicación actual desde la perspectiva de un desarrollador de Android:

  1. La API de ubicación del marco de trabajo de Android: android.locationesta es "la forma antigua" y se recomienda a los desarrolladores que adapten la API más nueva:

  2. 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 requestPermissionspara 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.

Bueno, de alguna manera confirmas mis temores... Si rechazo un permiso para una aplicación, pero Google Play Services lo tiene, tus citas dicen que actúan de forma independiente y, por lo tanto, el bypass realmente existe. Si no es así, ¿podrías aclarar cómo? De todos modos, gracias por tomarse el tiempo de buscar esto en la documentación del SDK.
Por lo que puedo decir, todavía es por aplicación. La llamada de solicitud de permiso proviene de la aplicación, ya que la biblioteca para llamar a Play Services todavía está dentro del contexto de la aplicación. Aunque todavía no he confirmado esto con las pruebas... ¿Podría estar interpretando mal los documentos?