펜스 콜백 관리

펜스가 등록되면 펜스가 트리거될 때 응답하는 콜백을 앱에 추가해야 합니다. 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);
        }
    }
}