เมื่อลงทะเบียนรั้วแล้ว แอปของคุณต้องเพิ่ม Callback เพื่อตอบสนองเมื่อมีการทริกเกอร์รั้ว ซึ่งทำได้โดยใช้คลาสย่อยของ
BroadcastReceiver เพื่อจัดการเมธอด Intent จากฟันดาบ
ก่อนที่จะเพิ่มการเรียกกลับไปยังรั้ว คุณต้องลงทะเบียนรั้วก่อน
สร้างคลาสย่อยของ BroadcastReceiver
ตัวอย่างต่อไปนี้แสดงคลาส FenceReceiver ซึ่งขยาย BroadcastReceiver คลาสจะใช้เมธอด Callback BroadcastReceiver.onReceive() เพื่อจัดการเมธอด Intent ทั้งหมด ที่มาจากรั้วที่แอปของคุณสร้างขึ้น เมื่อได้รับ Intent ระบบจะใช้เมธอด FenceState.extract() เพื่อรับสถานะรั้วและส่งไปยัง Callback
public class FenceReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
FenceState fenceState = FenceState.extract(intent);
if (TextUtils.equals(fenceState.getFenceKey(), FENCE_KEY)) {
String fenceStateStr;
switch (fenceState.getCurrentState()) {
case FenceState.TRUE:
fenceStateStr = "true";
break;
case FenceState.FALSE:
fenceStateStr = "false";
break;
case FenceState.UNKNOWN:
fenceStateStr = "unknown";
break;
default:
fenceStateStr = "unknown value";
}
mLogFragment.getLogView().println("Fence state: " + fenceStateStr);
}
}
}