Mendaftarkan pagar

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

Mendaftarkan pagar

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

Berikut ini yang diperlukan untuk mendaftarkan dan membatalkan pendaftaran batas:

  • Instance Klien Google Play Services API
  • Instance AwarenessFence, yang merupakan batas 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 batas dengan kunci batas unik, panggil addFence() beberapa kali. Anda dapat menggunakan metode PendingIntent sebanyak yang diperlukan, tetapi sebaiknya gunakan satu PendingIntent untuk semua callback batas. Jika Anda menggunakan kunci pagar yang telah didaftarkan 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 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: Mengelola panggilan balik batas wilayah.