Schnellstart: Registrieren einer App für Inhalt für ein Gerät mit automatischer Wiedergabe
Language: HTML | XAML

Schnellstart: Registrieren einer App für ein Gerät mit automatischer Wiedergabe (XAML)

[ Dieser Artikel richtet sich an Windows 8.x- und Windows Phone 8.x-Entwickler, die Windows-Runtime-Apps schreiben. Wenn Sie für Windows 10 entwickeln, finden Sie weitere Informationen unter neueste Dokumentation]

Sie können Apps als Optionen für Geräteereignisse zur automatischen Wiedergabe registrieren. Geräteereignisse zur automatischen Wiedergabe werden ausgelöst, wenn ein Gerät an einen PC angeschlossen wird.

Roadmap: Wie hängt dieses Thema mit anderen zusammen? Informationen finden Sie unter:

Hier wird gezeigt, wie Sie eine App als Option für die automatische Wiedergabe identifizieren, wenn eine Kamera an einen PC angeschlossen wird. Die App wird als Handler für das WPD\ImageSource-Ereignis zur automatischen Wiedergabe registriert. Dabei handelt es sich um ein häufiges Ereignis, das vom Windows Portable Device (WPD)-System ausgelöst wird, wenn es von Kameras und anderen Bildverarbeitungsgeräten benachrichtigt wird, dass es sich bei ihnen um eine ImageSource mit MTP handelt. Weitere Informationen finden Sie unter Tragbare Windows-Geräte.

Wenn Sie ein Gerätehersteller sind und Ihrem Gerät eine bestimmte Windows Store-Geräte-App als AutoPlay-Handler zuweisen möchten, können Sie die App in den Gerätemetadaten identifizieren. Wenn Sie Ihre App der Experience-ID Ihres Geräts als automatisch installierte App zuordnen, findet das Betriebssystem diese Zuordnung, wenn Ihr Gerät an einen PC angeschlossen wird. Ist Ihre App nicht auf dem PC installiert, wird sie vom Betriebssystem automatisch heruntergeladen und installiert. Die automatische Wiedergabe bietet Ihre App als erste Option an, wenn der Benutzer den Handler für das Gerät auswählt. Weitere Informationen finden Sie im Thema zu AutoPlay für Windows Store-Geräte-Apps.

Ziel: Erstellen Sie eine App zur Handhabung eines Geräteereignisses zur automatischen Wiedergabe.

Voraussetzungen

Microsoft Visual Studio

Anweisungen

1. Erstellen eines neuen Projekts und Hinzufügen von Deklarationen für die automatische Wiedergabe

  1. Öffnen Sie Visual Studio, und wählen Sie im Menü Datei die Option Neues Projekt aus. Wählen Sie im Abschnitt Visual C# oder Visual Basic die Option Windows Store aus. Geben Sie für die App den Namen AutoPlayDevice_Camera ein, und klicken Sie anschließend auf OK.
  2. Öffnen Sie die Datei Package.appxmanifest, und klicken Sie auf die Registerkarte Funktionen. Wählen Sie die Funktion Wechselmedien. Damit geben Sie der App Zugriff auf die Daten auf der Kamera als Wechselmedien-Volumegerät.
  3. Klicken Sie in der Manifestdatei auf die Registerkarte Deklarationen. Wählen Sie in der Dropdownliste Verfügbare Deklarationen die Option Gerät automatisch wiedergeben aus, und klicken Sie anschließend auf Hinzufügen. Wählen Sie das neue Element vom Typ Gerät automatisch wiedergeben aus, das der Liste Unterstützte Deklarationen hinzugefügt wurde.
  4. Die Deklaration Gerät automatisch wiedergeben kennzeichnet Ihre App als Option, wenn von der automatischen Wiedergabe ein Geräteereignis ausgelöst wird.

    Geben Sie im Abschnitt Startaktionen folgende Werte für die Aktion beim ersten Start ein:

    EinstellungWert
    Verbshow
    Anzeigename der AktionBilder anzeigen
    InhaltsereignisWPD\ImageSource

     

    Die Einstellung Aktionsanzeigename dient zum Angeben der Zeichenfolge, mit der die automatische Wiedergabe für Ihre App angezeigt wird. Die Einstellung Verb dient zum Angeben eines Werts, der für die ausgewählte Option an Ihre App übergeben wird. Sie können mehrere Startaktionen für Ereignisse der automatischen Wiedergabe angeben und mit der Einstellung Verb ermitteln, welche Option ein Benutzer für Ihre App ausgewählt hat. Für welche Option sich der Benutzer entschieden hat, erfahren Sie durch Überprüfen der verb-Eigenschaft der an die App übergebenen Startereignisargumente. Für die Einstellung Verb können Sie einen beliebigen Wert verwenden. Einzige Ausnahme ist open: Dieser Wert ist reserviert. Ein Beispiel zur Verwendung mehrerer Verben in einer einzelnen App erhalten Sie in Schnellstart: Registrieren einer App für Inhalt für die automatische Wiedergabe.

  5. Wählen Sie in der Dropdownliste Verfügbare Deklarationen die Option Dateitypzuordnungen aus, und klicken Sie anschließend auf Hinzufügen. Legen Sie in den Eigenschaften der neuen Deklaration vom Typ Dateitypzuordnungen das Feld Anzeigename auf Show Images from Camera und das Feld Name auf camera_association1 fest. Klicken Sie im Abschnitt Unterstützte Dateitypen auf Neu hinzufügen. Legen Sie im Feld Dateityp die Option .jpg fest. Klicken Sie im Abschnitt Unterstützte Dateitypen erneut auf Neu hinzufügen. Legen Sie das Feld Dateityp der neuen Dateizuordnung auf .png fest. Für Inhaltsereignisse filtert AutoPlay Dateitypen heraus, die nicht explizit Ihrer App zugeordnet sind.
  6. Speichern und schließen Sie die Manifestdatei.

2. Hinzufügen der XAML-UI

  • Öffnen Sie die Datei MainPage.xaml, und fügen Sie dem standardmäßigen <Grid>-Abschnitt den folgenden XAML-Code hinzu.
    
    <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. Hinzufügen von Aktivierungscode

Der Code bei diesem Schritt referenziert die Kamera als StorageDevice, indem er die Geräteinformations-ID der Kamera an die FromId-Methode weiterleitet. Die Geräteinformations-ID der Kamera wird ermittelt, indem die Ereignisargumente zunächst in DeviceActivatedEventArgs umgewandelt werden, und anschließend der Wert von der DeviceInformationId-Eigenschaft abgerufen wird.

  • Öffnen Sie die Datei App.xaml.cs oder App.xaml.vb, und fügen Sie der App-Klasse den folgenden Code hinzu.
    
    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. Hinzufügen von Code zum Anzeigen von Geräteinformationen

Informationen zur Kamera erhalten Sie über die Eigenschaften der StorageDevice-Klasse. Der Code in diesem Schritt zeigt bei der Ausführung der App den Gerätenamen und andere Informationen für den Benutzer an. Der Code ruft anschließend die Methoden GetImageList und GetThumbnail auf, die Sie im nächsten Schritt hinzufügen, um Miniaturansichten der auf der Kamera gespeicherten Bilder einzublenden.

  • Fügen Sie in der Datei MainPage.xaml.cs oder MainPage.xaml.vb der MainPage-Klasse folgenden Code hinzu.
    
    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. Hinzufügen von Code zum Anzeigen von Bildern

Der Code in diesem Schritt blendet Miniaturansichten der Bilder ein, die auf der Kamera gespeichert sind. Der Code ruft die Miniaturansicht mit asynchronen Aufrufen an die Kamera ab. Der nächste asynchrone Aufruf erfolgt aber nicht, bis der vorherige asynchrone Aufruf abgeschlossen ist. Damit wird sichergestellt, dass nur ein Aufruf auf einmal an die Kamera gesendet wird.

  • Fügen Sie in der Datei MainPage.xaml.cs oder MainPage.xaml.vb der MainPage-Klasse folgenden Code hinzu.
    
    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. Erstellen und Ausführen der App

  1. Drücken Sie F5, um die App zu erstellen und bereitzustellen (im Debugmodus).
  2. Führen Sie Ihre App aus, indem Sie eine Kamera an Ihren Computer anschließen. Wählen Sie die App anschließend in der Liste mit Optionen zur automatischen Wiedergabe aus.
    Hinweis  Nicht alle Kameras zeigen das WPD\ImageSource-Geräteereignis zur automatischen Wiedergabe an.
     

Zusammenfassung

In diesem Lernprogramm haben Sie eine App erstellt, die Bilddateien von einem Kameragerät anzeigt. Sie haben die App für das WPD\ImageSource-Geräteereignis zur automatischen Wiedergabe registriert.

Verwandte Themen

Automatischer Start mit automatischer Wiedergabe
Roadmap für Windows-Runtime-Apps mit C# oder Visual Basic

 

 

Anzeigen:
© 2017 Microsoft