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 batas.

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

Membuat subclass BroadcastReceiver

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