Pergunta

Atualmente, tenho um aplicativo muito simples para o qual a única interação é agitar o iPhone. No entanto, eventualmente, a tela diminui e os bloqueios automáticos, já que o iPhone não está recebendo eventos de toque. Eu queria saber se existe uma maneira de redefinir o tempo limite de bloqueio automático quando abalado?

Eu sei disso para desativar completamente o bloqueio automático, eu faria isso:

[[ UIApplication sharedApplication ] setIdleTimerDisabled: YES ]

Mas eu realmente não quero desativá -lo completamente; Se o iPhone não estiver sendo usado legitimamente, ele deve ser um bloqueio automático conforme o esperado.

Obrigado pela ajuda.

Foi útil?

Solução

Você poderia alternar o valor de [UIApplication sharedApplication].idleTimerDisabled com base no valor do seu próprio gesto NSTIMER ou comportamento (agitando o telefone). Pode ser definido como YES/NO várias vezes em seu aplicativo.

Outras dicas

Aqui está o código que eu uso no meu aplicativo. Um pouco de plano de fundo: meu aplicativo possui um servidor da web embutido para que os usuários possam acessar dados de um navegador sobre o WiFi e cada vez que uma solicitação chega ao servidor, estendo o timer de bloqueio (por um mínimo de 2 minutos neste caso; Você ainda recebe o tempo padrão adicionado depois de reativado).

// disable idle timer for a fixed amount of time.
- (void) extendIdleTimerTimeout
{
    // cancel previous scheduled messages to turn idle timer back on
    [NSObject cancelPreviousPerformRequestsWithTarget:self
        selector:@selector(reenableIdleTimer)
        object:nil];
    // disable idle timer
    [[UIApplication sharedApplication] setIdleTimerDisabled:YES];

    // re-enable the timer on after specified delay.
    [self performSelector:@selector(reenableIdleTimer) withObject:nil afterDelay: 60 * 2];

}

- (void) reenableIdleTimer
{
sharedApplication].idleTimerDisabled );
    [NSObject cancelPreviousPerformRequestsWithTarget:self
        selector:@selector(reenableIdleTimer)
        object:nil];
    // disable idle timer
    [[UIApplication sharedApplication] setIdleTimerDisabled:NO];
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top