Aplikacja otrzymuje wywołanie zwrotne przez PendingIntent za każdym razem, gdy zmienia się stan obszaru. Każdy obszar musi zostać zarejestrowany przez aplikację, zanim będzie można go używać.
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 obszar. PendingIntentdo 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ć 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ż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ć addFence(), wartości AwarenessFence i PendingIntent zostaną zastąpione dla tego klucza.
Wyrejestrowywanie ogrodzenia
Aby wyrejestrować obszar, wywołaj funkcję getFenceClient().updateFences() i użyj FenceUpdateRequest.Builder()
do utworzenia żądania aktualizacji obszaru. Następnie wywołaj funkcję 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.