تسجيل السياج

يتلقّى تطبيقك دالة رد اتصال من خلال 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);
         }
     });

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