Twoja aplikacja oddzwania do PendingIntent
po każdej zmianie stanu ogrodzenia. Aplikacja musi zarejestrować każde płot, zanim będzie można go używać.
Zarejestruj ogrodzenie
Aby zarejestrować płot, użyj narzędzia FenceClient
, a do skonstruowania FenceUpdateRequest
, użyj FenceClient.updateFences()
.
Wywołaj addFence()
dla każdego płotu, który chcesz dodać.
Do rejestracji i wyrejestrowania ogrodzenia wymagane są:
- Instancja klienta interfejsu API usług Google Play.
- Instancja
AwarenessFence
, która jest ogrodzeniem. PendingIntent
do zmiany stanu.- Klucz płotu to ciąg znaków, który identyfikuje ogrodzenie i mapuje je na parę
AwarenessFence
–PendingIntent
.
Ten przykładowy kod pokazuje metodę, która wywołuje updateFences()
, aby zarejestrować płot:
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 ogrodzeniami, wywołaj funkcję addFence()
wielokrotnie. Możesz użyć dowolnej liczby metod PendingIntent
, ale lepiej jest używać jednego wywołania PendingIntent
dla wszystkich wywołań wywołania ogrodzenia. Jeśli używasz klucza ogrodzenia, który jest już zarejestrowany do wywoływania addFence()
, wartości AwarenessFence
i PendingIntent
zostaną dla niego zastąpione.
Wyrejestrowywanie płotu
Aby wyrejestrować płot, wywołaj metodę getFenceClient().updateFences()
i użyj polecenia FenceUpdateRequest.Builder()
, by utworzyć prośbę o aktualizację ogrodzenia. Następnie wywołaj funkcję 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.