Ç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 eklemelidir. Bunu, çitlerdeki Intent yöntemlerini yönetmek için BroadcastReceiver alt sınıfını kullanarak yapabilirsiniz.

Bir çite geri arama eklemeden önce çiti kaydetmeniz gerekir.

BroadcastReceiver alt sınıfı oluşturma

Aşağıdaki örnekte BroadcastReceiver sınıfını kapsayan FenceReceiver sınıfı gösterilmektedir. Sınıf, uygulamanız tarafından oluşturulan çitlerden kaynaklanan 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ğırmaya 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);
        }
    }
}