Zarejestruj płot

Aplikacja otrzymuje wywołanie zwrotne od PendingIntent za każdym razem, gdy zmienia się stan obszaru. Zanim będzie można używać aplikacji, musi ona zarejestrować każdy obszar.

Rejestrowanie ogrodzenia

Aby zarejestrować ogrodzenie, użyj funkcji FenceClient, a do utworzenia FenceUpdateRequest użyj funkcji FenceClient.updateFences(). Zadzwoń pod numer addFence(), aby dodać każdy obszar.

Aby zarejestrować i wyrejestrować obszar, musisz:

  • Instancja klienta interfejsu API Usług Google Play.
  • Wystąpienie AwarenessFence, czyli sam płot.
  • PendingIntent do obsługi zmian stanu.
  • Klucz ogrodzenia, czyli ciąg znaków, który identyfikuje ogrodzenie i jest powiązany z parą AwarenessFence-PendingIntent.

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

    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 obszarów z unikalnymi kluczami, wywołaj funkcję addFence() wiele razy. Możesz użyć dowolnej liczby metod PendingIntent, ale zalecamy używanie jednej metody PendingIntent w przypadku wszystkich wywołań zwrotnych związanych z ogrodzeniem. Jeśli użyjesz klucza obszaru, który został już zarejestrowany, aby wywołać funkcję addFence(), wartości AwarenessFencePendingIntent zostaną zastąpione dla tego klucza.

Wyrejestrowywanie obszaru

Aby wyrejestrować obszar, wywołaj funkcję getFenceClient().updateFences() i użyj funkcji FenceUpdateRequest.Builder(), aby utworzyć żądanie aktualizacji obszaru. Następnie wywołaj removeFence(), jak pokazano 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);
         }
     });

Dalszy krok: zarządzanie wywołaniami zwrotnymi dotyczącymi obszaru.