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.