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