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