Sau khi đăng ký một hàng rào, ứng dụng của bạn phải thêm một 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 một 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 hàng rào, trước tiên, bạn phải đăng ký hàng rào.
Tạo một lớp con của BroadcastReceiver
Ví dụ sau đây cho thấy lớp FenceReceiver
, 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ừ hàng rào do ứng dụng của bạn tạo. Khi nhận được Intent
, phương thức FenceState.extract()
sẽ được dùng để lấy trạng thái hàng rào và truyền phương thức này đế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);
}
}
}