Receber alertas de proximidade usando geofence
Você pode usar a classe net.rim.device.api.location.Geofence para definir um perímetro ao redor de uma área que você deseja que seu aplicativo monitore. Seu aplicativo recebe um alerta sempre que um usuário do aparelho BlackBerry acessa ou deixa uma área de geofence. Ao usar geofencing, você pode alertar seus usuários quando eles entram em uma área de interesse, ou você pode enviar informações de usuários específicas de suas localizações.
Quando um aplicativo chama o método Geofence.monitorPerimeter(), o servidor de Geofence enviará alertas de proximidade ao aplicativo sempre que o aparelho acessa ou deixa a área de geofence. Cada objeto Geofence pode monitorar até 20 áreas simultaneamente.
Definir uma área a monitorar
// Single Coordinates object, to be used along with a radius Coordinates coords = new Coordinates(43.2750, -80.3318, 0); // Array of three Coordinates objects, representing a three-sided polygon Coordinates[] coords2 = new Coordinates[3]; coords2[0] = new Coordinates(43.2851, -80.3229, 0); coords2[1] = new Coordinates(43.2945, -80.3220, 0); coords2[2] = new Coordinates(43.2852, -80.3199, 0);
GFListener gfListener = new GFListener(); Geofence geofence = new Geofence(); // Starts monitoring the area defined by the coordinate and a radius geofence.monitorPerimeter(gfListener, "RIM 12", coords, 500, 50, -1); // Starts monitoring the area defined by the set of coordinates geofence.monitorPerimeter(gfListener, "RIM campus", coords2, 50, -1);
Ouvir eventos de geofence
private class GFListener implements GeofenceListener
{
public void perimeterEntered(String tag, BlackBerryLocation location)
{
// Code that runs when a user enters the perimeter
}
public void errorOccurred(int errorCode)
{
// Code that runs when an error occurs
}
public void perimeterExited(String tag, BlackBerryLocation location)
{
// Code that runs when a user leaves the perimeter
}
}
Se errorOccured() for chamado devido à bateria fraca ou se serviços de localização estiverem indisponíveis (erro OUT_OF_SERVICE), o aplicativo irá parar de receber notificações.
Estas informações foram úteis? Gostaríamos de receber seus comentários.