مدیریت تماس های حصاری، مدیریت تماس های حصاری

هنگامی که یک حصار ثبت شد، برنامه شما باید برای پاسخ دادن به هنگام فعال شدن حصار، یک تماس پاسخ اضافه کند. می‌توانید این کار را با استفاده از زیر کلاس BroadcastReceiver برای مدیریت روش‌های Intent از حصارها انجام دهید.

قبل از اینکه تماس‌های برگشتی را به حصار اضافه کنید، ابتدا باید حصار را ثبت کنید .

یک زیر کلاس از BroadcastReceiver ایجاد کنید

مثال زیر کلاس FenceReceiver را نشان می دهد که BroadcastReceiver گسترش می دهد. کلاس متد Callback BroadcastReceiver.onReceive() را برای مدیریت تمام متدهای Intent که از حصارهای ایجاد شده توسط برنامه شما سرچشمه می گیرند، پیاده سازی می کند. هنگامی که یک Intent دریافت می شود، از متد FenceState.extract() برای بدست آوردن حالت fence و ارسال آن به callback استفاده می شود.

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);
        }
    }
}