تسجيل السياج

يتلقّى تطبيقك ردّ اتصال من خلال PendingIntent كلما تغيّرت حالة السياج الجغرافي. يجب أن يسجّل تطبيقك كل سياج جغرافي قبل استخدامه.

تسجيل سياج

لتسجيل سياج جغرافي، استخدِم FenceClient، ولإنشاء FenceUpdateRequest، استخدِم FenceClient.updateFences(). اتّصِل برقم addFence() لكل سياج تريد إضافته.

يجب استيفاء المتطلبات التالية لتسجيل سياج جغرافي وإلغاء تسجيله:

يوضّح مثال الرمز البرمجي التالي طريقة تستدعي 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);
         }
     });

الخطوة التالية: إدارة عمليات معاودة الاتصال المتعلقة بالحدود الجغرافية