Eso es todo.

Para comenzar a desarrollar, consulta nuestra documentación para desarrolladores.

Activar la Google Places API for Android

Para que puedas comenzar, te proporcionaremos orientación en la consola para desarrolladores de Google a fin de que hagas primero algunas acciones:

  1. Crear o seleccionar un proyecto
  2. Activar la Google Places API for Android
  3. Crear claves correspondientes
Continuar

Sitio actual

Al usar la Google Places API for Android, puedes descubrir el sitio en el que se ubica actualmente el dispositivo Es decir, la ubicación actualmente transmitida del dispositivo. Algunos ejemplos de sitios incluyen negocios locales, puntos de interés y ubicaciones geográficas.

Permisos

Si tu aplicación usa PlaceDetectionApi.getCurrentPlace(), debes solicitar el permiso ACCESS_FINE_LOCATION.

Nuevo modelo de permisos en Android 6.0 Marshmallow

Android 6.0 Marshmallow presenta un nuevo modelo para administrar permisos, que simplifica el proceso de instalación y actualización de apps para los usuarios. Suponiendo que usas la versión 8.1 o una posterior de Google Play Services, puedes configurar tu app de modo que esté lista para el SDK de Android 6.0 Marshmallow y use el nuevo modelo de permisos.

Si tu app admite el nuevo modelo de permisos, el usuario no necesita otorgar permisos cuando instala o actualiza la app. En lugar de ello, la app debe solicitar permisos cuando los necesite durante el tiempo de ejecución, y el sistema muestra al usuario un cuadro de diálogo en el que se solicita el permiso.

Para obtener más información, consulta la documentación para Android 6.0 Marshmallow y los cambios que debes realizar en tu app para el nuevo modelo de permisos.

Límites de uso

El uso del método PlaceDetectionApi.getCurrentPlace() está sujeto a los límites de consulta por niveles. Consulta la documentación sobre los límites de uso.

Obtén la ubicación actual

Para encontrar el negocio local u otro sitio en el cual se ubica actualmente el dispositivo, realiza una llamada a PlaceDetectionApi.getCurrentPlace().

Opcionalmente, puedes especificar un PlaceFilter para restringir los resultados a uno o más id. de sitio (hasta 10 como máximo) o para seleccionar solo los sitios que actualmente se encuentren abiertos. Si no se especifica ningún filtro, los resultados no se filtrarán.

La API devuelve PlaceLikelihoodBuffer en un PendingResult. PlaceLikelihoodBuffer incluye una lista de objetos de PlaceLikelihood que representan los sitios posibles. Para cada sitio, el resultado incluye una indicación de la probabilidad de que el sitio en cuestión sea el correcto. El búfer puede estar vacío si no existe ningún sitio conocido que coincida con los criterios de filtro.

Puedes realizar una llamada a PlaceLikelihood.getPlace() para recuperar un objeto Place y a PlaceLikelihood.getLikelihood() para conocer la calificación de probabilidad del sitio. Cuanto más alto sea el valor, mayor será la probabilidad de que el sitio en cuestión sea la mejor coincidencia.

El siguiente ejemplo de código recupera la lista de sitios donde existe mayor probabilidad de que se encuentre el dispositivo, y registra el nombre y la probabilidad para cada sitio.

PendingResult<PlaceLikelihoodBuffer> result = Places.PlaceDetectionApi
    .getCurrentPlace(mGoogleApiClient, null);
result.setResultCallback(new ResultCallback<PlaceLikelihoodBuffer>() {
  @Override
  public void onResult(PlaceLikelihoodBuffer likelyPlaces) {
    for (PlaceLikelihood placeLikelihood : likelyPlaces) {
      Log.i(TAG, String.format("Place '%s' has likelihood: %g",
          placeLikelihood.getPlace().getName(),
          placeLikelihood.getLikelihood()));
    }
    likelyPlaces.release();
  }
});

Notas sobre los valores de la probabilidad:

  • La probabilidad proporciona una posibilidad relativa del sitio que representa la mejor coincidencia dentro de la lista de sitios devueltos para una solicitud individual. No puedes comparar las probabilidades entre solicitudes diferentes.
  • El valor de la probabilidad estará entre 0 y 1,0.
  • La suma de probabilidades en un PlaceLikelihoodBuffer determinado es siempre inferior o igual a 1,0. Ten en cuenta que la suma no necesariamente es 1,0.

Por ejemplo, para representar una probabilidad del 55 % de que el sitio correcto sea el Sitio A y una probabilidad del 35 % de que sea el Sitio B, PlaceLikelihoodBuffer tiene dos miembros, el Sitio A con una probabilidad de 0,55 y el Sitio B con una probabilidad de 0,35.

Mostrar atribuciones en tu aplicación

Cuando en tu aplicación se muestra información obtenida de PlaceDetectionApi.getCurrentPlace(), también deben exhibirse atribuciones. Consulta la documentación sobre las atribuciones.

Enviar comentarios sobre...