Đăng ký hàng rào

Ứ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 hàng rào thay đổi. Ứng dụng của bạn phải đăng ký từng hàng rào trước khi 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 một 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ý hàng rào:

  • 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á 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ể sử dụng nhiều phương thức PendingIntent tuỳ ý, nhưng tốt nhất là bạn 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á hàng rào đã được đăng ký để gọi addFence(), thì các giá trị AwarenessFencePendingIntent sẽ được ghi đè cho khoá đó.

Huỷ đăng ký hàng rào

Để huỷ đăng ký hàng rào, hãy gọi getFenceClient().updateFences() và sử dụng FenceUpdateRequest.Builder() để tạo 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.