Ứng dụng của bạn sẽ nhận được lệnh gọi lại của PendingIntent bất cứ khi nào trạng thái của rào chắn thay đổi. Ứng dụng của bạn phải đăng ký từng ranh giới trước khi có thể sử dụng.
Đăng ký hàng rào địa lý
Để đăng ký rào chắn, hãy sử dụng FenceClient và để tạo FenceUpdateRequest, hãy sử dụng FenceClient.updateFences().
Gọi addFence() cho mỗi hàng rào cần thêm.
Bạn cần có những thông tin sau để đăng ký và huỷ đăng ký ranh giới địa lý:
- Một thực thể Ứng dụng API Dịch vụ Google Play.
- Một thực thể
AwarenessFence, chính là hàng rào. PendingIntentđể xử lý các thay đổi về trạng thái.- Khoá rào chắn, là một chuỗi xác định rào chắn và liên kết với một cặp
AwarenessFence-PendingIntent.
Ví dụ về mã sau đây cho thấy một phương thức gọi updateFences() để đăng ký ranh giới:
Awareness.getFenceClient(this).updateFences(new FenceUpdateRequest.Builder()
.addFence(FENCE_KEY, exercisingWithHeadphonesFence, mPendingIntent)
.build())
.addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
Log.i(TAG, "Fence was successfully registered.");
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.e(TAG, "Fence could not be registered: " + e);
}
});
Để tạo nhiều hàng rào có khoá hàng rào riêng biệt, hãy gọi addFence() nhiều lần. Bạn có thể sử dụng bao nhiêu phương thức PendingIntent tuỳ ý, nhưng tốt nhất là nên sử dụng một PendingIntent duy nhất cho tất cả lệnh gọi lại hàng rào. Nếu bạn
sử dụng khoá rào chắn đã được đăng ký để gọi addFence(), thì
giá trị AwarenessFence và PendingIntent sẽ được ghi đè cho khoá đó.
Huỷ đăng ký hàng rào địa lý
Để huỷ đăng ký ranh giới, hãy gọi getFenceClient().updateFences() và sử dụng FenceUpdateRequest.Builder() để tạo yêu cầu cập nhật ranh giới. Sau đó, hãy gọi removeFence(), như trong ví dụ sau:
Awareness.getFenceClient(this).updateFences(new FenceUpdateRequest.Builder()
.removeFence(FENCE_KEY)
.build())
.addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
Log.i(TAG, "Fence was successfully unregistered.");
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.e(TAG, "Fence could not be unregistered: " + e);
}
});
Bước tiếp theo: Quản lý lệnh gọi lại hàng rào.