ثبت حصار

هر زمان که وضعیت حصار تغییر کند، برنامه شما توسط PendingIntent پاسخ تماس دریافت می کند. برنامه شما باید هر حصار را قبل از استفاده ثبت کند.

ثبت حصار

برای ثبت یک حصار، از FenceClient و برای ساختن یک FenceUpdateRequest ، از FenceClient.updateFences() استفاده کنید. برای افزودن هر حصار addFence() فراخوانی کنید.

برای ثبت و لغو ثبت حصار موارد زیر لازم است:

  • یک نمونه Google Play Services API Client .
  • یک نمونه AwarenessFence ، که خود حصار است.
  • یک PendingIntent برای مدیریت تغییرات حالت.
  • یک کلید حصار، که رشته‌ای است که حصار را شناسایی می‌کند و به یک جفت AwarenessFence - PendingIntent نقشه می‌دهد.

مثال کد زیر روشی را نشان می دهد که updateFences() را برای ثبت یک حصار فراخوانی می کند:

    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);
            }
        });

برای ایجاد حصارهای متعدد با کلیدهای حصار منحصربفرد، چندین بار addFence() را فراخوانی کنید. شما می‌توانید به تعداد مورد نیاز از روش‌های PendingIntent استفاده کنید، اما ترجیحاً استفاده از یک PendingIntent برای همه تماس‌های حصاری ترجیح داده می‌شود. اگر از کلید fence استفاده می‌کنید که قبلاً برای فراخوانی addFence() ثبت شده است، مقادیر AwarenessFence و PendingIntent برای آن کلید بازنویسی می‌شوند.

یک حصار را لغو ثبت کنید

برای لغو ثبت یک حصار، getFenceClient().updateFences() را فراخوانی کنید و از FenceUpdateRequest.Builder() برای ایجاد درخواست به روز رسانی حصار استفاده کنید. سپس removeFence() فراخوانی کنید، همانطور که در مثال زیر نشان داده شده است:

 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);
         }
     });

مرحله بعدی: مدیریت تماس های حصاری .