Zaun erstellen

Ein Geofence definiert eine oder mehrere Kontextbedingungen, auf die Ihre App reagieren kann. Wenn sich der Status eines Zauns ändert, erhält Ihre App einen Rückruf.

Es gibt zwei Arten von Begrenzungen: primitive Begrenzungen, die den grundlegenden Satz von Kontextsignalen darstellen, und Kombinationsbegrenzungen, die mehrere primitive Begrenzungen mithilfe von booleschen Operatoren kombinieren. Alle Zäune sind Instanzen von AwarenessFence.

Einen einfachen Zaun erstellen

Primitive Begrenzungen, die die grundlegenden Kontextsignale darstellen, sind im Paket awareness.fence definiert. Im folgenden Beispiel wird die Erstellung einer einfachen Begrenzung gezeigt, die TRUE ist, wenn die erkannte Aktivität des Nutzers WALKING ist, und FALSE andernfalls:

AwarenessFence walkingFence = DetectedActivityFence.during(DetectedActivityFence.WALKING);

Im vorherigen Beispiel wurde DetectedActivityFence durch einen Aufruf von during erstellt. Das bedeutet, dass sich der Zaun im Status TRUE befindet, wenn sich der Nutzer in WALKING befindet.

Auf Übergänge reagieren

Jeder primitive Zauntyp, mit Ausnahme von TimeFence, kann auch kurzzeitig ausgelöst werden, wenn der Kontextstatus wechselt. Sie können beispielsweise festlegen, dass ein DetectedActivityFence kurzzeitig ausgelöst wird, wenn ein Nutzer eine Aktivität starting oder stopping ausführt. Übergangsabsperrungen befinden sich einige Sekunden lang im Status TRUE, bevor sie wieder FALSE werden.

Kombinationszaun erstellen

Kombinationszäune kombinieren mehrere primitive Zauntypen mithilfe von booleschen Operatoren. Im folgenden Beispiel wird ein Kombinationszaun erstellt, der aktiviert wird, wenn der Nutzer geht und die Kopfhörer angeschlossen sind:

// Create the primitive fences.
AwarenessFence walkingFence = DetectedActivityFence.during(DetectedActivityFence.WALKING);
AwarenessFence headphoneFence = HeadphoneFence.during(HeadphoneState.PLUGGED_IN);

// Create a combination fence to AND primitive fences.
AwarenessFence walkingWithHeadphones = AwarenessFence.and(
      walkingFence, headphoneFence
);

Verschachtelte Bäume von AND, OR und NOT sind gültig. Daher ist jede boolesche Kombination von Zäunen möglich. Im folgenden Beispiel wird ein Zaun ausgelöst, wenn sich ein Nutzer mehr als 100 Meter vom aktuellen Standort entfernt oder seit der aktuellen Uhrzeit mehr als eine Stunde vergangen ist.

double currentLocationLat;  // current location latitude
double currentLocationLng;  // current location longitude
long nowMillis = System.currentTimeMillis();
long oneHourMillis = 1L * 60L * 60L * 1000L;

AwarenessFence orExample = AwarenessFence.or(
        AwarenessFence.not(LocationFence.in(
                currentLocationLat,
                currentLocationLng,
                100.0,
                100.0,
                0L)),
        TimeFence.inInterval(nowMillis + oneHourMillis, Long.MAX_VALUE));

Nächster Schritt: Ein Grundstück registrieren