إدارة استدعاءات السياج

بعد تسجيل حدود منطقة، يجب أن يضيف تطبيقك طلب استدعاء للردّ عند تنشيط الحدود. يمكنك إجراء ذلك باستخدام فئة فرعية من BroadcastReceiver لمعالجة طرق Intent من الأسوار.

قبل إضافة عمليات استدعاء إلى سياج، يجب أولاً تسجيل السياج.

أنشئ فئة فرعية من BroadcastReceiver.

يعرض المثال التالي فئة FenceReceiver التي تمتد BroadcastReceiver. تنفِّذ الفئة BroadcastReceiver.onReceive()طريقة ردّ الاتصال للتعامل مع جميع طرق Intent التي تأتي من الأسوار التي أنشأها تطبيقك. عند تلقّي Intent، يتم استخدام الأسلوب FenceState.extract() للحصول على حالة السياج ونقلها إلى طريقة ردّ الاتصال.

public class FenceReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {

        FenceState fenceState = FenceState.extract(intent);

        if (TextUtils.equals(fenceState.getFenceKey(), FENCE_KEY)) {
            String fenceStateStr;
            switch (fenceState.getCurrentState()) {
                case FenceState.TRUE:
                    fenceStateStr = "true";
                    break;
                case FenceState.FALSE:
                    fenceStateStr = "false";
                    break;
                case FenceState.UNKNOWN:
                    fenceStateStr = "unknown";
                    break;
                default:
                    fenceStateStr = "unknown value";
            }
            mLogFragment.getLogView().println("Fence state: " + fenceStateStr);
        }
    }
}