펜스 콜백 관리

펜스가 등록되면 펜스가 트리거될 때 앱에서 응답할 콜백을 추가해야 합니다. 펜스에서 Intent 메서드를 처리하기 위해 BroadcastReceiver의 서브클래스를 사용하면 됩니다.

펜스에 콜백을 추가하려면 먼저 펜스에 등록해야 합니다.

BroadcastReceiver의 서브클래스 만들기

다음 예는 BroadcastReceiver를 확장하는 FenceReceiver 클래스를 보여줍니다. 이 클래스는 앱에서 만든 펜스에서 시작된 모든 Intent 메서드를 처리하기 위해 BroadcastReceiver.onReceive() 콜백 메서드를 구현합니다. 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);
        }
    }
}