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

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

Bir sınıra geri çağırma eklemeden önce sınırı kaydetmeniz gerekir.

BroadcastReceiver'ın bir alt sınıfını oluşturun

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