Ứng dụng của bạn sẽ nhận được một lệnh gọi lại theo PendingIntent
bất cứ khi nào trạng thái của một hàng rào thay đổi. Ứng dụng của bạn phải đăng ký từng hàng rào thì mới có thể sử dụng.
Đăng ký hàng rào
Để đăng ký một hàng rào, hãy sử dụng FenceClient
và để tạo FenceUpdateRequest
, hãy sử dụng FenceClient.updateFences()
.
Gọi addFence()
cho từng hàng rào cần thêm.
Bạn phải đăng ký và huỷ đăng ký một hàng rào để:
- Một phiên bản Google Play Services API Client.
- Một thực thể
AwarenessFence
, chính là hàng rào. - Một
PendingIntent
để xử lý các thay đổi về trạng thái. - Khoá hàng rào là một chuỗi xác định hàng rào và ánh xạ đến 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ý một hàng rào:
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ể dùng bao nhiêu phương thức PendingIntent
tuỳ ý, nhưng tốt nhất là bạn nên dùng một PendingIntent
cho tất cả các lệnh gọi lại hàng rào. Nếu bạn sử dụng một khoá hàng rào đã được đăng ký để gọi addFence()
, thì các giá trị AwarenessFence
và PendingIntent
sẽ bị ghi đè cho khoá đó.
Huỷ đăng ký hàng rào
Để huỷ đăng ký một hàng rào, hãy gọi getFenceClient().updateFences()
và sử dụng FenceUpdateRequest.Builder()
để tạo một yêu cầu cập nhật hàng rào. 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.