Informations
Le sujet que vous avez demandé est indiqué ci-dessous. Toutefois, ce sujet ne figure pas dans la bibliothèque.

Démarrage rapide : inscrire une application pour un périphérique de lecture automatique (XAML)

Vous pouvez inscrire des applications en tant qu’options pour les événements de périphériques de lecture automatique. Les événements de périphériques de lecture automatique sont déclenchés lorsqu’un périphérique est connecté à un PC.

Feuille de route : comment cette rubrique s’articule-t-elle par rapport aux autres ? Voir :

Voici comment identifier votre application en tant qu’option de lecture automatique lorsqu’un appareil photo est connecté à un PC. L’application s’inscrit en tant que gestionnaire de l’événement de lecture automatiqueWPD\ImageSource. Il s’agit d’un événement courant que le système WPD (Windows Portable Device) déclenche lorsque des appareils photo et d’autres périphériques d’acquisition d’images l’avertissent qu’ils sont une source d’image (ImageSource) utilisant MTP. Pour plus d’informations, voir Appareils mobiles Windows.

Si vous êtes fabricant de périphériques et si vous voulez associer votre application du Windows Store pour périphérique en tant que gestionnaire de lecture automatique de votre périphérique, vous pouvez identifier l’application dans les métadonnées du périphérique. Si vous associez votre application en tant qu’application à installation automatique pour l’ID d’expérience de votre périphérique, le système d’exploitation détecte cette association quand votre périphérique est connecté à un PC. Si votre application n’est pas installée sur votre PC, le système d’exploitation la télécharge et l’installe automatiquement. La lecture automatique présente votre application comme première option que l’utilisateur peut choisir comme gestionnaire de votre périphérique. Pour plus d’informations, voir Lecture automatique pour les applications du Windows Store pour périphérique.

Objectif: Créez une application pour gérer un événement de périphérique de lecture automatique.

Prérequis

Microsoft Visual Studio

Instructions

1. Créer un projet et ajouter les déclarations de lecture automatique

  1. Ouvrez Visual Studio et sélectionnez Nouveau projet dans le menu Fichier. Dans la section Visual C# ou Visual Basic, sélectionnez Windows Store. Attribuez à l’application le nom AutoPlayDevice_Camera, puis cliquez sur OK.
  2. Ouvrez le fichier Package.appxmanifest, puis sélectionnez l’onglet Capacités. Sélectionnez la fonctionnalité Stockage amovible. Cela permet à l’application d’accéder aux données situées sur l’appareil photo en tant que périphérique de volume de stockage amovible.
  3. Dans le fichier manifeste, sélectionnez l’onglet Déclarations. Dans la liste déroulante Déclarations disponibles, sélectionnez Périphérique de lecture automatique, puis cliquez sur Ajouter. Sélectionnez le nouvel élément Périphérique de lecture automatique ajouté à la liste Déclarations prises en charge.
  4. Une déclaration Périphérique de lecture automatique identifie votre application en tant qu’option lorsque la lecture automatique déclenche un événement de périphérique pour des événements connus.

    Dans la section Actions de lancement, entrez les valeurs suivantes pour la première action de lancement.

    ParamètreValeur
    Verbeshow
    Nom complet de l’actionShow Pictures
    Événement de contenuWPD\ImageSource

     

    Le paramètre Nom complet de l’action identifie la chaîne que la lecture automatique affiche pour votre application. Le paramètre Verbe identifie une valeur qui est transmise à votre application pour l’option sélectionnée. Vous pouvez spécifier plusieurs options de lancement pour un événement de lecture automatique et utiliser le paramètre Verbe pour déterminer quelle option l’utilisateur a sélectionnée pour votre application. Vous pouvez vérifier quelle option a été sélectionnée par l’utilisateur par le biais de la propriété verb des arguments d’événement de démarrage transmis à votre application. Vous pouvez attribuer n’importe quelle valeur au paramètre Verbe, sauf la valeur open qui est réservée. Pour obtenir un exemple d’utilisateur de plusieurs verbes dans une même application, voir Démarrage rapide : inscrire une application pour du contenu de lecture automatique.

  5. Dans la liste déroulante Déclarations disponibles, sélectionnez Associations de types de fichiers, puis cliquez sur Ajouter. Dans les propriétés de la nouvelle déclaration Associations de types de fichiers, attribuez au champ Nom complet la valeur Show Images from Camera et au champ Nom la valeur camera_association1. Dans la section Types de fichiers pris en charge, cliquez sur Ajouter nouveau. Attribuez au champ Type de fichier la valeur .jpg. Dans la section Types de fichiers pris en charge, cliquez à nouveau sur Ajouter nouveau. Attribuez au champ Type de fichier de la nouvelle association de fichier la valeur .png. Pour les événements de contenu, la lecture automatique filtre les types de fichiers qui ne sont pas explicitement associés à votre application.
  6. Enregistrez et fermez le fichier manifeste.

2. Ajouter une interface utilisateur XAML

  • Ouvrez le fichier MainPage.xaml et ajoutez le code XAML suivant à la section <Grid> par défaut.
    
    <StackPanel Orientation="Vertical" Margin="10,0,-10,0">
        <TextBlock FontSize="24">Device Information</TextBlock>
        <StackPanel Orientation="Horizontal">
            <TextBlock x:Name="DeviceInfoTextBlock" FontSize="18" Height="400" Width="400" VerticalAlignment="Top" />
            <ListView x:Name="ImagesList" HorizontalAlignment="Left" Height="400" VerticalAlignment="Top" Width="400">
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Vertical">
                            <Image Source="{Binding Path=Source}" />
                            <TextBlock Text="{Binding Path=Name}" />
                        </StackPanel>
                    </DataTemplate>
                </ListView.ItemTemplate>
                <ListView.ItemsPanel>
                    <ItemsPanelTemplate>
                        <WrapGrid Orientation="Horizontal" ItemHeight="100" ItemWidth="120"></WrapGrid>
                    </ItemsPanelTemplate>
                </ListView.ItemsPanel>
            </ListView>
        </StackPanel>
    </StackPanel>
    
    
    

3. Ajouter du code d’activation

Le code de cette étape fait référence à l’appareil photo en tant que StorageDevice en passant l’ID des informations de périphérique de l’appareil photo à la méthode FromId. L’ID des informations de périphérique de l’appareil photo est obtenu en effectuant tout d’abord un cast des arguments de l’événement en tant que DeviceActivatedEventArgs, puis en obtenant la valeur de la propriété DeviceInformationId.

  • Ouvrez le fichier App.xaml.cs ou App.xaml.vb, puis ajoutez le code suivant à la classe App.
    
    protected override void OnActivated(IActivatedEventArgs args)
    {
        if (args.Kind == ActivationKind.Device)
        {
            Frame rootFrame = null;
            // Ensure that the current page exists and is activated
            if (Window.Current.Content == null)
            {
                rootFrame = new Frame();
                rootFrame.Navigate(typeof(MainPage));
                Window.Current.Content = rootFrame;
            }
            else
            {
                rootFrame = Window.Current.Content as Frame;
            }
            Window.Current.Activate();
    
            // Reference the current page as type MainPage
            var mPage = rootFrame.Content as MainPage;
    
            // Cast the activated event args as DeviceActivatedEventArgs and show images
            var deviceArgs = args as DeviceActivatedEventArgs;
            if (deviceArgs != null)
            {
                mPage.ShowImages(Windows.Devices.Portable.StorageDevice.FromId(deviceArgs.DeviceInformationId));
            }
        }
    
        base.OnActivated(args);
    }
    
    
    

4. Ajouter du code pour afficher des informations de périphérique

Vous pouvez obtenir des informations sur l’appareil photo à partir des propriétés de la classe StorageDevice. Le code de cette étape affiche le nom du périphérique et d’autres informations à l’utilisateur au moment de l’exécution de l’application. Le code appelle alors les méthodes GetImageList et GetThumbnail, que vous ajouterez à l’étape suivante, pour afficher des miniatures des images stockées dans l’appareil photo.

  • Dans le fichier MainPage.xaml.cs ou MainPage.xaml.vb, ajoutez le code suivant à la classe MainPage.
    
    private Windows.Storage.StorageFolder rootFolder;
    
    internal async void ShowImages(Windows.Storage.StorageFolder folder)
    {
        DeviceInfoTextBlock.Text = "Display Name = " + folder.DisplayName + "\n";
        DeviceInfoTextBlock.Text += "Display Type =  " + folder.DisplayType + "\n";
        DeviceInfoTextBlock.Text += "FolderRelativeId = " + folder.FolderRelativeId + "\n";
    
        // Reference first folder of the device as the root
        rootFolder = (await folder.GetFoldersAsync())[0];
        var imageList = await GetImageList(rootFolder);
    
        foreach (Windows.Storage.StorageFile img in imageList)
        {
            ImagesList.Items.Add(await GetThumbnail(img));
        }
    }
    
    
    

5. Ajouter du code pour afficher des images

Le code de cette étape affiche des miniatures des images stockées dans l’appareil photo. Le code effectue des appels asynchrones à l’appareil photo pour obtenir l’image miniature. Toutefois, l’appel asynchrone suivant ne se produit qu’une fois l’appel asynchrone précédent terminé. Cela garantit qu’une seule demande est effectuée à l’appareil photo à la fois.

  • Dans le fichier MainPage.xaml.cs ou MainPage.xaml.vb, ajoutez le code suivant à la classe MainPage.
    
    async private System.Threading.Tasks.Task<List<Windows.Storage.StorageFile>> GetImageList(Windows.Storage.StorageFolder folder) 
    {
        var result = await folder.GetFilesAsync();
        var subFolders = await folder.GetFoldersAsync();
        foreach (Windows.Storage.StorageFolder f in subFolders)
            result = result.Union(await GetImageList(f)).ToList();
    
        return (from f in result orderby f.Name select f).ToList();
    }
    
    async private System.Threading.Tasks.Task<Image> GetThumbnail(Windows.Storage.StorageFile img) 
    {
        // Get the thumbnail to display
        var thumbnail = await img.GetThumbnailAsync(Windows.Storage.FileProperties.ThumbnailMode.SingleItem,
                                                    100,
                                                    Windows.Storage.FileProperties.ThumbnailOptions.UseCurrentScale);
    
        // Create a XAML Image object bind to on the display page
        var result = new Image();
        result.Height = thumbnail.OriginalHeight;
        result.Width = thumbnail.OriginalWidth;
        result.Name = img.Name;
        var imageBitmap = new Windows.UI.Xaml.Media.Imaging.BitmapImage();
        imageBitmap.SetSource(thumbnail);
        result.Source = imageBitmap;
    
        return result;
    }
    
    
    

6. Créer et exécuter l’application

  1. Appuyez sur F5 pour créer et déployer l’application (en mode débogage).
  2. Pour exécuter votre application, connectez un appareil photo à votre ordinateur. Sélectionnez ensuite l’application dans la liste d’options de la lecture automatique.
    Remarque  Tous les appareils photo n’effectuent pas de publication pour l’événement de périphérique de lecture automatique WPD\ImageSource.

Récapitulatif

Dans ce didacticiel, vous avez créé une application qui affiche des fichiers image à partir d’un appareil photo. Vous avez inscrit l’application pour l’événement de périphérique WPD\ImageSource de lecture automatique.

Rubriques associées

Démarrage automatique avec lecture automatique
Feuille de route pour les applications Windows Runtime en C# ou Visual Basic

 

 

Afficher:
© 2015 Microsoft