Gerenciar callbacks de limite

Depois que um limite é registrado, seu app precisa adicionar um callback para responder quando ele for acionado. Você pode fazer isso usando uma subclasse de BroadcastReceiver para processar métodos Intent de limites.

Antes de adicionar callbacks a um limite, você precisa registrar o limite.

Criar uma subclasse de BroadcastReceiver

O exemplo a seguir mostra a classe FenceReceiver, que estende BroadcastReceiver. A classe implementa o método de callback BroadcastReceiver.onReceive() para processar todos os métodos Intent originados de limites criados pelo seu app. Quando um Intent é recebido, o método FenceState.extract() é usado para receber o estado de limite e transmiti-lo para o 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);
        }
    }
}