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

بعد تسجيل سياج جغرافي، يجب أن يضيف تطبيقك دالة ردّ للتعامل مع الحدث عند تفعيل السياج. يمكنك إجراء ذلك باستخدام فئة فرعية من 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);
        }
    }
}