Gdy zarejestrujesz ogrodzenie, Twoja aplikacja musi dodać wywołanie zwrotne, aby reagować na jego aktywowanie. Możesz to zrobić za pomocą podklasy BroadcastReceiver, aby obsługiwać metody Intent z ogrodzeń.
Zanim dodasz wywołania zwrotne do ogrodzenia, musisz najpierw zarejestrować ogrodzenie.
Tworzenie podklasy BroadcastReceiver
Poniższy przykład pokazuje klasę FenceReceiver, która rozszerza BroadcastReceiver. Klasa implementuje metodę wywołania zwrotnego
BroadcastReceiver.onReceive(), aby obsługiwać wszystkie metody Intent
pochodzące z ogrodzeń utworzonych przez Twoją aplikację. Gdy zostanie odebrany element Intent, metoda
FenceState.extract()
służy do pobierania stanu ogrodzenia i przekazywania go do wywołania zwrotnego.
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);
}
}
}