Sau khi đăng ký một hàng rào, ứng dụng của bạn phải thêm lệnh gọi lại để phản hồi khi hàng rào được kích hoạt. Bạn có thể thực hiện việc này bằng cách sử dụng lớp con của BroadcastReceiver để xử lý các phương thức Intent từ hàng rào.
Trước khi thêm lệnh gọi lại vào một hàng rào, trước tiên bạn phải đăng ký hàng rào đó.
Tạo lớp con của BroadcastReceiver
Ví dụ sau đây cho thấy lớp FenceReceiver, lớp này mở rộng BroadcastReceiver. Lớp này triển khai phương thức gọi lại
BroadcastReceiver.onReceive() để xử lý tất cả các phương thức Intent bắt nguồn từ các hàng rào do ứng dụng của bạn tạo. Khi nhận được một Intent, phương thức
FenceState.extract()
sẽ được dùng để lấy trạng thái hàng rào và truyền trạng thái đó đến lệnh gọi lại.
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);
}
}
}