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