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 AwarenessFence
i PendingIntent
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.