แอปจะได้รับ Callback โดย PendingIntent
เมื่อใดก็ตามที่สถานะของรั้ว
มีการเปลี่ยนแปลง แอปของคุณต้องลงทะเบียนรั้วแต่ละรั้วก่อนจึงจะใช้งานได้
ลงทะเบียนรั้ว
หากต้องการลงทะเบียนรั้ว ให้ใช้
FenceClient
และหากต้องการสร้างFenceUpdateRequest
ให้ใช้ FenceClient.updateFences()
โทรหา addFence()
เพื่อเพิ่มรั้วแต่ละรั้ว
ต้องมีรายการต่อไปนี้จึงจะลงทะเบียนและยกเลิกการลงทะเบียนรั้วได้
- อินสแตนซ์ Google Play Services API Client
AwarenessFence
อินสแตนซ์ ซึ่งก็คือรั้วเองPendingIntent
เพื่อจัดการการเปลี่ยนแปลงสถานะ- คีย์รั้ว ซึ่งเป็นสตริงที่ระบุรั้วและจับคู่กับคู่
AwarenessFence
-PendingIntent
ตัวอย่างโค้ดต่อไปนี้แสดงเมธอดที่เรียก updateFences()
เพื่อ
ลงทะเบียนรั้ว
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);
}
});
หากต้องการสร้างรั้วหลายรั้วที่มีคีย์รั้วที่ไม่ซ้ำกัน ให้เรียกใช้ addFence()
หลายครั้ง คุณสามารถใช้PendingIntent
ได้มากเท่าที่ต้องการ แต่ควรใช้PendingIntent
เดียวสำหรับการเรียกกลับของ Fence ทั้งหมด หากคุณใช้คีย์รั้วที่ลงทะเบียนไว้แล้วเพื่อเรียก addFence()
ค่า AwarenessFence
และ PendingIntent
จะเขียนทับสำหรับคีย์นั้น
ยกเลิกการลงทะเบียนรั้ว
หากต้องการยกเลิกการลงทะเบียนรั้ว ให้โทรหา
getFenceClient().updateFences()
และใช้ FenceUpdateRequest.Builder()
เพื่อสร้างคำขออัปเดตรั้ว จากนั้นเรียกใช้ removeFence()
ดังตัวอย่างต่อไปนี้
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);
}
});
ขั้นตอนถัดไป: จัดการการเรียกกลับของรั้ว