Aplikacja otrzymuje wywołanie zwrotne od PendingIntent za każdym razem, gdy zmienia się stan ogrodzenia. Zanim będzie można użyć ogrodzenia, aplikacja musi je zarejestrować.
Rejestrowanie ogrodzenia
Aby zarejestrować ogrodzenie, użyj FenceClient, a aby utworzyć FenceUpdateRequest, użyj FenceClient.updateFences().
Wywołaj addFence() dla każdego ogrodzenia, które chcesz dodać.
Aby zarejestrować i wyrejestrować ogrodzenie, musisz:
- Instancja klienta interfejsu API usług Google Play.
- Instancja
AwarenessFence, która jest samym ogrodzeniem. PendingIntentdo obsługi zmian stanu.- Klucz ogrodzenia, który jest ciągiem znaków identyfikującym ogrodzenie i odpowiadającym parze
AwarenessFence-PendingIntent.
Poniższy przykładowy kod pokazuje metodę, która wywołuje 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 addFence() wielokrotnie. Możesz użyć dowolnej liczby metod PendingIntent, ale najlepiej używać jednej metody PendingIntent do wszystkich wywołań zwrotnych ogrodzenia. Jeśli użyjesz klucza ogrodzenia, który został już zarejestrowany, aby wywołać metodę addFence(), wartości AwarenessFence i PendingIntent zostaną zastąpione dla tego klucza.
Wyrejestrowywanie ogrodzenia
Aby wyrejestrować ogrodzenie, wywołaj getFenceClient().updateFences() i użyj FenceUpdateRequest.Builder() do utworzenia żądania aktualizacji ogrodzenia. Następnie wywołaj 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ądzanie wywołaniami zwrotnymi ogrodzenia.