Mendaftarkan pagar

Aplikasi Anda menerima callback dari PendingIntent setiap kali status fence berubah. Aplikasi Anda harus mendaftarkan setiap fence sebelum dapat digunakan.

Mendaftarkan pagar

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

Berikut ini yang diperlukan untuk mendaftarkan dan membatalkan pendaftaran fence:

  • Instance Google Play Services API Client.
  • 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 fence:

    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 fence dengan kunci fence unik, panggil addFence() beberapa kali. Anda dapat menggunakan metode PendingIntent sebanyak yang diperlukan, tetapi sebaiknya gunakan satu PendingIntent untuk semua callback fence. Jika Anda menggunakan kunci fence yang telah terdaftar untuk memanggil addFence(), nilai AwarenessFence dan PendingIntent akan ditimpa untuk kunci tersebut.

Membatalkan pendaftaran pagar

Untuk membatalkan pendaftaran fence, panggil getFenceClient().updateFences(), dan gunakan FenceUpdateRequest.Builder() untuk membuat permintaan update fence. Kemudian, panggil removeFence(), seperti yang ditunjukkan dalam 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 fence.