Zaun registrieren

Ihre App erhält einen Callback von PendingIntent, wenn sich der Status eines Zauns ändert. Ihre App muss jeden Zaun registrieren, bevor er verwendet werden kann.

Zaun registrieren

Verwenden Sie FenceClient, um einen Zaun zu registrieren, und FenceClient.updateFences(), um einen FenceUpdateRequest zu erstellen. Rufen Sie addFence() für jeden Zaun auf, den Sie hinzufügen möchten.

Folgendes ist erforderlich, um einen Zaun zu registrieren und abzumelden:

  • Eine Instanz eines Google Play Services API-Clients.
  • Eine AwarenessFence-Instanz, also der Zaun selbst.
  • Eine PendingIntent zum Verwalten von Statusänderungen.
  • Ein Zaunschlüssel, ein String, der den Zaun identifiziert und einem AwarenessFence-PendingIntent-Paar zugeordnet ist.

Das folgende Codebeispiel zeigt eine Methode, die updateFences() aufruft, um einen Zaun zu registrieren:

    Awareness.getFenceClient(this).updateFences(new FenceUpdateRequest.Builder()
        .addFence(FENCE_KEY, exercisingWithHeadphonesFence, mPendingIntent)
        .build())
        .addOnSuccessListener(new OnSuccessListener<Void>() {
            @Override
            public void onSuccess(Void aVoid) {
                Log.i(TAG, "Fence was successfully registered.");
            }
        })
        .addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                Log.e(TAG, "Fence could not be registered: " + e);
            }
        });

Wenn Sie mehrere Zäune mit eindeutigen Zaunschlüsseln erstellen möchten, rufen Sie addFence() mehrmals auf. Sie können beliebig viele PendingIntent-Methoden verwenden. Es empfiehlt sich jedoch, für alle Begrenzungs-Callbacks dieselbe PendingIntent zu verwenden. Wenn Sie einen Zaunschlüssel verwenden, der bereits für den Aufruf von addFence() registriert wurde, werden die Werte AwarenessFence und PendingIntent für diesen Schlüssel überschrieben.

Einzäunung abmelden

Wenn Sie einen Zaun abmelden möchten, rufen Sie getFenceClient().updateFences() auf und verwenden Sie FenceUpdateRequest.Builder(), um eine Aktualisierungsanfrage für den Zaun zu erstellen. Rufen Sie dann removeFence() auf, wie im folgenden Beispiel gezeigt:

 Awareness.getFenceClient(this).updateFences(new FenceUpdateRequest.Builder()
     .removeFence(FENCE_KEY)
     .build())
     .addOnSuccessListener(new OnSuccessListener<Void>() {
         @Override
         public void onSuccess(Void aVoid) {
             Log.i(TAG, "Fence was successfully unregistered.");
         }
     })
     .addOnFailureListener(new OnFailureListener() {
         @Override
         public void onFailure(@NonNull Exception e) {
             Log.e(TAG, "Fence could not be unregistered: " + e);
         }
     });

Nächster Schritt: Begrenzungs-Callbacks verwalten