Mendaftarkan pagar

Aplikasi Anda menerima callback oleh PendingIntent setiap kali status pagar berubah. Aplikasi Anda harus mendaftarkan setiap pagar sebelum dapat digunakan.

Mendaftarkan pagar

Untuk mendaftarkan pagar, gunakan FenceClient, dan untuk membuat FenceUpdateRequest, gunakan FenceClient.updateFences(). Panggil addFence() untuk setiap pagar yang akan ditambahkan.

Hal berikut diperlukan untuk mendaftarkan dan membatalkan pendaftaran pagar:

  • Instance Klien Google Play Services API.
  • Instance AwarenessFence, yang merupakan pagar itu sendiri.
  • PendingIntent untuk menangani perubahan status.
  • Kunci pagar, yang merupakan string yang mengidentifikasi pagar dan dipetakan ke pasangan AwarenessFence-PendingIntent.

Contoh kode berikut menunjukkan metode yang memanggil updateFences() untuk mendaftarkan pagar:

    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);
            }
        });

Untuk membuat beberapa pagar dengan kunci pagar yang unik, panggil addFence() beberapa kali. Anda dapat menggunakan metode PendingIntent sebanyak yang diperlukan, tetapi sebaiknya gunakan satu PendingIntent untuk semua callback pagar. Jika Anda menggunakan kunci pagar yang telah terdaftar untuk memanggil addFence(), nilai AwarenessFence dan PendingIntent akan ditimpa untuk kunci tersebut.

Membatalkan pendaftaran pagar

Untuk membatalkan pendaftaran pagar, panggil getFenceClient().updateFences(), dan gunakan FenceUpdateRequest.Builder() untuk membuat permintaan pembaruan pagar. Kemudian, panggil removeFence(), seperti yang ditunjukkan pada contoh berikut:

 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);
         }
     });

Langkah berikutnya: Kelola callback pagar.