Recursos da interface do usuário da câmera para dispositivos móveis
Este artigo mostra como aproveitar os recursos especiais da interface do usuário da câmera que estão presentes apenas em dispositivos móveis.
Adicionar a extensão móvel ao seu projeto
Para usar esses recursos, você deve adicionar uma referência ao SDK da Extensão Móvel da Microsoft para Plataforma de Aplicativo Universal ao seu projeto.
Para adicionar uma referência ao SDK da extensão móvel para suporte ao botão de câmera de hardware
No Gerenciador de Soluções, clique com o botão direito do mouse em Referências e selecione Adicionar Referência.
Expanda o nó Universal do Windows e selecione Extensões.
Marque a caixa de seleção SDK da Microsoft Mobile Extension para Plataforma de Aplicativo Universal.
Ocultar a barra de status
Os dispositivos móveis têm um controle StatusBar que fornece ao usuário informações de status sobre o dispositivo. Esse controle ocupa espaço na tela que pode interferir na interface do usuário de captura de mídia. Você pode ocultar a barra de status chamando HideAsync, mas deve fazer essa chamada de dentro de um bloco condicional em que usa o método ApiInformation.IsTypePresent para determinar se a API está disponível. Esse método só retornará true em dispositivos móveis que dão suporte à barra de status. Você deve ocultar a barra de status quando seu aplicativo for iniciado ou quando começar a visualizar a partir da câmera.
// Hide the status bar
if (ApiInformation.IsTypePresent("Windows.UI.ViewManagement.StatusBar"))
{
await Windows.UI.ViewManagement.StatusBar.GetForCurrentView().HideAsync();
}
Quando seu aplicativo está sendo desligado ou quando o usuário sai da página de captura de mídia do seu aplicativo, você pode tornar o controle visível novamente.
// Show the status bar
if (ApiInformation.IsTypePresent("Windows.UI.ViewManagement.StatusBar"))
{
await Windows.UI.ViewManagement.StatusBar.GetForCurrentView().ShowAsync();
}
Use o botão da câmera de hardware
Alguns dispositivos móveis têm um botão de câmera de hardware dedicado que alguns usuários preferem a um controle na tela. Para ser notificado quando o botão da câmera de hardware for pressionado, registre um manipulador para o evento HardwareButtons.CameraPressed. Como essa API está disponível somente em dispositivos móveis, você deve usar novamente o IsTypePresent para garantir que a API tenha suporte no dispositivo atual antes de tentar acessá-la.
using Windows.Phone.UI.Input;
if (ApiInformation.IsTypePresent("Windows.Phone.UI.Input.HardwareButtons"))
{
HardwareButtons.CameraPressed += HardwareButtons_CameraPressed;
}
No manipulador do evento CameraPressed , você pode iniciar uma captura de foto.
private async void HardwareButtons_CameraPressed(object sender, CameraEventArgs e)
{
await TakePhotoAsync();
}
Quando o aplicativo estiver sendo desligado ou o usuário se afastar da página de captura de mídia do aplicativo, cancele o registro do manipulador de botões de hardware.
if (ApiInformation.IsTypePresent("Windows.Phone.UI.Input.HardwareButtons"))
{
HardwareButtons.CameraPressed -= HardwareButtons_CameraPressed;
}