تسجيل السياج

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

تسجيل سياج

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

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

  • مثيل عميل واجهة برمجة تطبيقات خدمات Google Play
  • مثيل 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);
         }
     });

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