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