Zarejestruj płot

Aplikacja otrzymuje wywołanie zwrotne PendingIntent, gdy zmienia się stan ogrodzenia. Aplikacja musi zarejestrować każdy płot, zanim będzie można go używać.

Rejestrowanie ogrodzenia

Aby zarejestrować ogrodzenie, użyj polecenia FenceClient, a aby utworzyć FenceUpdateRequest, użyj polecenia FenceClient.updateFences(). Zadzwoń pod numer addFence() w przypadku każdego ogrodzenia, które chcesz dodać.

Aby zarejestrować i wyrejestrować ogrodzenie, musisz podać:

  • instancja klienta interfejsu Google Play Services API,
  • wystąpienie AwarenessFence, czyli sam płot;
  • PendingIntent do obsługi zmian stanu.
  • Klucz ogrodzenia, czyli ciąg znaków identyfikujący ogrodzenie i mapowany na parę AwarenessFence-PendingIntent.

Poniższy przykład kodu pokazuje metodę, która wywołuje funkcję updateFences(), aby zarejestrować ogrodzenie:

    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);
            }
        });

Aby utworzyć wiele ogrodzeń z unikalnymi kluczami, wywołaj funkcję addFence() kilka razy. Możesz używać dowolnej liczby metod PendingIntent, ale zalecamy używanie jednej metody PendingIntent do wszystkich wywołań zwrotnych w ramach ogrodzenia. Jeśli użyjesz klucza ogrodzenia, który jest już zarejestrowany do wywołania addFence(), wartości AwarenessFencePendingIntent zostaną nadpisane.

Wyrejestrowywanie ogrodzenia

Aby anulować rejestrację ogrodzenia, zadzwoń pod numer getFenceClient().updateFences() i użyj żądania aktualizacji ogrodzenia FenceUpdateRequest.Builder(). Następnie wywołaj metodę removeFence(), jak w tym przykładzie:

 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);
         }
     });

Następny krok: zarządzaj wywołaniami z powiadomień o przekroczeniu ogrodzenia.