Mengelola callback fence

Setelah pagar didaftarkan, aplikasi Anda harus menambahkan callback untuk merespons saat pagar dipicu. Anda dapat melakukannya dengan menggunakan subclass BroadcastReceiver untuk menangani metode Intent dari pagar.

Sebelum menambahkan callback ke pagar, Anda harus mendaftarkan pagar terlebih dahulu.

Membuat subclass BroadcastReceiver

Contoh berikut menunjukkan class FenceReceiver, yang memperluas BroadcastReceiver. Class ini menerapkan metode callback BroadcastReceiver.onReceive() untuk menangani semua metode Intent yang berasal dari pagar yang dibuat oleh aplikasi Anda. Saat Intent diterima, metode FenceState.extract() digunakan untuk mendapatkan status pagar dan meneruskannya ke 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);
        }
    }
}