Curso Windows Phone – Como observar a inatividade do usuário e habilitar ou desabilitar a tela de bloqueio do WP

Olá pessoal, tudo bom?

O sistema operacional do Windows Phone prevê uma série de características implícitas para proporcionar economia de bateria durante o uso do aparelho. Uma dessas características observa a atividade de uso do aparelho por parte do usuário, ou seja, se o usuário está usando uma determinada APP (tocando na tela ou nos botões de controle) a tela de bloqueio do Windows Phone não é executada, porém caso ele tenha executado uma determinada APP mas não está tocando na tela, a tendência natural é o sistema operacional observar a inatividade e então colocar a APP em modo “idle” e chamar a tela de bloqueio do mesmo.

Ocorre que por vezes temos aplicações que não necessitam da intervenção do usuário para que ela faça o trabalho devido, como por exemplo, uma APP para leitura de notícias ou apresentação de algum tipo de gráfico que irá requerer apenas a observação do usuário e não sua interação. Se esse for o seu caso, veja abaixo como proceder para observar a inatividade do usuário e habilitar ou desabilitar a tela de bloqueio do WP.

Projeto de Exemplo

O projeto de exemplo conta com uma interface simples que apresenta se a tela de bloqueio está ou não habilitada de acordo com a função de ativação da observação da inatividade do usuário.

1º passo: Interface

...
<StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
  <TextBlock Text="BLOG DO EDUARDO H. RIZO" Style="{StaticResource PhoneTextNormalStyle}" Margin="12,0"/>
  <TextBlock Text="idle detection" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
</StackPanel>

<!--ContentPanel - place additional content here-->
  <StackPanel x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
    <StackPanel Name="stpFundo" Background="Red" Height="60">
      <TextBlock Name="msg" FontSize="40" Text="Lock Screen Enable" HorizontalAlignment="Center" />
    </StackPanel>
    <Button Name="btnAcao" Content="Disable lock screen" Margin="0,80,0,0" Tap="btnAcao_Tap" />
  </StackPanel>
...
Tela de Exemplo do Projeto

Exemplo: A tela irá alternar entre a situação de bloqueio de desbloqueio conforme a ação do usuário.

2º passo: codificação em C#

No clique do botão para habilitar/desabilitar a observação da inatividade do usuário, temos:

...
private void btnAcao_Tap(object sender, System.Windows.Input.GestureEventArgs e)
{
  PhoneApplicationService phoneService = PhoneApplicationService.Current;
  if (phoneService.UserIdleDetectionMode == IdleDetectionMode.Enabled)
  {
    phoneService.UserIdleDetectionMode = IdleDetectionMode.Disabled;
    btnAcao.Content = "Enable lock screen";
    msg.Text = "Lock Screen Disabled";
    stpFundo.Background = new SolidColorBrush(Color.FromArgb(255, 0, 255, 0));
  }
  else
  {
    phoneService.UserIdleDetectionMode = IdleDetectionMode.Enabled;
    btnAcao.Content = "Disable lock screen";
    msg.Text = "Lock Screen Enabled";
    stpFundo.Background = new SolidColorBrush(Color.FromArgb(255, 255, 0, 0));
  }
}
...

Observamos pelo código acima que a classe PhoneApplicationService é que nos permite conhecer a característica de ociosidade do usuário e a propriedade UserIdleDetectionMode nos permite habilitar ou não a mesma. O restante do código é apenas para o tratamento visual dos controles existentes na tela.

Post Relacionado: 

Grande abraço,
Eduardo Henrique Rizo

Anúncios

Coordenador de Internet da Universidade do Oeste Paulista (Unoeste) e professor universitário de disciplinas relacionadas ao desenvolvimento de sistemas para Web, gerenciamento de servidores, serviços e redes.

Marcado com: , , , , , , , , , , , , ,
Publicado em Windows Phone
4 comentários em “Curso Windows Phone – Como observar a inatividade do usuário e habilitar ou desabilitar a tela de bloqueio do WP
  1. […] Como observar a inatividade do usuário e habilitar ou desabilitar a tela de bloqueio do WP […]

  2. Anderson Benevides disse:

    Como fazer o mesmo ser válido para Windows Phone 8.1 ?

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

Sorocaba e Região
Prestadora de serviços RIZZO GS - Sorocaba/SP

Serviços de limpeza, conservação, recepção, copa, portaria, vigia, zeladoria, jardim, elétrica, hidráulica, pintura, etc.

Contato: (15) 3357-4263 / (15) 3357-4502 - contato@rizzogs.com.br

Website: http://www.rizzogs.com.br

%d blogueiros gostam disto: