Funzionalità dell'interfaccia utente della fotocamera per dispositivi mobili

Questo articolo illustra come sfruttare le funzionalità speciali dell'interfaccia utente della fotocamera presenti solo nei dispositivi mobili.

Aggiungere l'estensione per dispositivi mobili al progetto

Per usare queste funzionalità, è necessario aggiungere un riferimento a Microsoft Mobile Extension SDK for Universal App Platform al progetto.

Per aggiungere un riferimento all'SDK dell'estensione per dispositivi mobili per il supporto del pulsante della fotocamera hardware

  1. In Esplora soluzioni fare clic con il pulsante destro del mouse su Riferimenti e selezionare Aggiungi riferimento.

  2. Espandere il nodo Windows Universal e selezionare Estensioni.

  3. Selezionare la casella di spunta Microsoft Mobile Extension SDK for Universal App Platform.

La barra di stato viene nascosta

I dispositivi mobili hanno un controllo StatusBar che fornisce all'utente informazioni sullo stato del dispositivo. Questo controllo occupa spazio sullo schermo che può interferire con l'interfaccia utente di acquisizione multimediale. Si può nascondere la barra di stato chiamando HideAsync, ma si deve effettuare questa chiamata da un blocco condizionale in cui si usa il metodo ApiInformation.IsTypePresent per determinare se l'API è disponibile. Questo metodo restituirà true solo nei dispositivi mobili che supportano la barra di stato. Si deve nascondere la barra di stato all'avvio dell'app o all'avvio dell'anteprima dalla fotocamera.

// Hide the status bar
if (ApiInformation.IsTypePresent("Windows.UI.ViewManagement.StatusBar"))
{
    await Windows.UI.ViewManagement.StatusBar.GetForCurrentView().HideAsync();
}

Quando l'app viene arrestata o quando l'utente si allontana dalla pagina di acquisizione multimediale dell'app, si può rendere nuovamente visibile il controllo.

// Show the status bar
if (ApiInformation.IsTypePresent("Windows.UI.ViewManagement.StatusBar"))
{
    await Windows.UI.ViewManagement.StatusBar.GetForCurrentView().ShowAsync();
}

Usare il pulsante della fotocamera hardware

Alcuni dispositivi mobili hanno un pulsante dedicato della fotocamera hardware che alcuni utenti preferiscono rispetto a un controllo sullo schermo. Per ricevere una notifica quando viene premuto il pulsante della fotocamera hardware, registrare un gestore per l'evento HardwareButtons.CameraPressed. Poiché questa API è disponibile solo nei dispositivi mobili, è necessario usare di nuovo IsTypePresent per assicurarsi che l'API sia supportata nel dispositivo corrente prima di tentare di accedervi.

using Windows.Phone.UI.Input;
if (ApiInformation.IsTypePresent("Windows.Phone.UI.Input.HardwareButtons"))
{
    HardwareButtons.CameraPressed += HardwareButtons_CameraPressed;
}

Nel gestore per l'evento CameraPressed si può avviare un'acquisizione di foto.

private async void HardwareButtons_CameraPressed(object sender, CameraEventArgs e)
{
    await TakePhotoAsync();
}

Quando l'app viene arrestata o l'utente si allontana dalla pagina di acquisizione multimediale dell'app, annullare la registrazione del gestore del pulsante hardware.

if (ApiInformation.IsTypePresent("Windows.Phone.UI.Input.HardwareButtons"))
{
    HardwareButtons.CameraPressed -= HardwareButtons_CameraPressed;
}