تسجيل السياج

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

الخطوة التالية: إدارة ردود السياج.