Çit geri çağırmalarını yönetme

Bir çit kaydedildikten sonra uygulamanız, çit tetiklendiğinde yanıt vermek için bir geri çağırma işlevi eklemelidir. Bunu, çitlerdeki Intent yöntemlerini işlemek için BroadcastReceiver alt sınıfını kullanarak yapabilirsiniz.

Bir çite geri çağırma eklemeden önce çitinizi kaydetmeniz gerekir.

BroadcastReceiver alt sınıfı oluşturma

Aşağıdaki örnekte, BroadcastReceiver sınıfını genişleten FenceReceiver sınıfı gösterilmektedir. Sınıf, uygulamanız tarafından oluşturulan çitlerden gelen tüm Intent yöntemlerini işlemek için BroadcastReceiver.onReceive() geri çağırma yöntemini uygular. Bir Intent alındığında, çit durumunu almak ve geri çağırma yöntemine iletmek için FenceState.extract() yöntemi kullanılır.

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