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.