펜스 콜백 관리

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

펜스에 콜백을 추가하기 전에 먼저 펜스를 등록해야 합니다.

BroadcastReceiver의 서브클래스 만들기

다음 예에서는 BroadcastReceiver를 확장하는 FenceReceiver 클래스를 보여줍니다. 이 클래스는 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);
        }
    }
}