تسجيل السياج

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

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