จัดการโค้ดเรียกกลับของรั้ว

เมื่อลงทะเบียนรั้วแล้ว แอปของคุณต้องเพิ่มการเรียกกลับเพื่อตอบสนอง เมื่อมีการทริกเกอร์รั้ว ซึ่งทำได้โดยใช้คลาสย่อยของ BroadcastReceiver เพื่อจัดการเมธอด Intent จากฟันดาบ

ก่อนที่จะเพิ่มการเรียกกลับไปยังรั้ว คุณต้องลงทะเบียนรั้วก่อน

สร้างคลาสย่อยของ BroadcastReceiver

ตัวอย่างต่อไปนี้แสดงคลาส FenceReceiver ซึ่งขยาย BroadcastReceiver คลาสจะใช้เมธอดเรียกกลับ BroadcastReceiver.onReceive() เพื่อจัดการเมธอด Intent ทั้งหมด ที่มาจากรั้วที่แอปของคุณสร้างขึ้น เมื่อได้รับ Intent ระบบจะใช้เมธอด FenceState.extract() เพื่อรับสถานะรั้วและส่งไปยังการเรียกกลับ

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);
        }
    }
}