Zarejestruj płot

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ę AwarenessFencePendingIntent.

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.