Ricezione degli avvisi di prossimità mediante il geofencing
È possibile utilizzare la classe net.rim.device.api.location.Geofence per definire il perimetro di un'area che l'applicazione deve monitorare. L'applicazione riceve un avviso quando un utente BlackBerry entra o esce dall'area delimitata da confini geografici. Utilizzando il geofencing, è possibile avvisare gli utenti quando entrano in un'area di interesse oppure inviare agli utenti informazioni specifiche sulla loro posizione.
Quando un'applicazione richiama il metodo Geofence.monitorPerimeter(), il server di geofencing invia gli avvisi di prossimità all'applicazione ogni volta che il dispositivo entra o esce dall'area delimitata da confini geografici. Ogni oggetto Geofence può controllare fino a 20 aree simultaneamente.
Definizione di un'area da monitorare
// 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);
Rilevamento di eventi di geofencing
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 viene richiamato il metodo errorOccured(), poiché la batteria è scarica oppure i servizi di posizionamento non sono disponibili (errore OUT_OF_SERVICE), l'applicazione smette di ricevere notifiche.
Le informazioni sono state utili? Inviateci i vostri commenti.