ثبت کردن حصار

هرگاه وضعیت حصاری تغییر کند، برنامه شما تا ‎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 استفاده کنید. اگر از کلید حصاری استفاده کنید که قبلاً برای تماس با 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);
         }
     });

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