Delen via


Toegang tot inhoud van de Thuisgroep

Belangrijke API's

Toegang tot inhoud die is opgeslagen in de map HomeGroup van de gebruiker, inclusief afbeeldingen, muziek en video's.

Vereiste voorwaarden

  • Inzicht in asynchrone programmering voor UWP-apps (Universal Windows Platform)

    U kunt leren hoe u asynchrone apps schrijft in C# of Visual Basic. Zie asynchrone API's aanroepen in C# of Visual Basic. Zie Asynchrone programmering in C++voor meer informatie over het schrijven van asynchrone apps in C++.

  • Verklaringen van app-mogelijkheden

    Als u toegang wilt krijgen tot de inhoud van HomeGroup, moet op de computer van de gebruiker een HomeGroup zijn ingesteld en moet uw app ten minste een van de volgende mogelijkheden hebben: picturesLibrary, musicLibrary of videosLibrary. Wanneer uw app toegang heeft tot de map HomeGroup, worden alleen de bibliotheken weergegeven die overeenkomen met de mogelijkheden die zijn gedeclareerd in het manifest van uw app. Zie Bestandstoegangsmachtigingenvoor meer informatie.

    Opmerking

     Inhoud in de documentenbibliotheek van een thuisgroep is niet zichtbaar voor uw app, ongeacht de mogelijkheden die zijn gedeclareerd in het manifest van uw app en ongeacht de instellingen voor delen van de gebruiker.  

  • Meer informatie over het gebruik van bestandskiezers

    Doorgaans gebruikt u de bestandskiezer voor toegang tot bestanden en mappen in de Thuisgroep. Zie Bestanden en mappen openen met een kiezer voor meer informatie over het gebruik van de bestandskiezer.

  • Bestand- en mapqueries begrijpen

    U kunt query's gebruiken om bestanden en mappen op te sommen in de HomeGroup. Zie Bestanden en mappen opsommen en er query's op uitvoeren voor bestanden en mappen voor meer informatie over query's voor bestanden en mappen.

Open de bestandskiezer bij de Thuisgroep

Volg deze stappen om een exemplaar van de bestandskiezer te openen waarmee de gebruiker bestanden en mappen uit de Thuisgroep kan kiezen:

  1. De bestandskiezer maken en aanpassen

    Gebruik FileOpenPicker om de bestandskiezer te maken en stel de SuggestedStartLocation van de kiezer in op PickerLocationId.HomeGroup. U kunt ook andere eigenschappen instellen die relevant zijn voor uw gebruikers en uw app. Zie Richtlijnen en checklist voor bestandskiezers voor hulp bij het bepalen hoe u de bestandskiezer kunt aanpassen.

    In dit voorbeeld wordt een bestandskiezer gemaakt die wordt geopend in de HomeGroup, bestanden van elk type bevat en de bestanden worden weergegeven als miniatuurafbeeldingen:

    Windows.Storage.Pickers.FileOpenPicker picker = new Windows.Storage.Pickers.FileOpenPicker();
    picker.ViewMode = Windows.Storage.Pickers.PickerViewMode.Thumbnail;
    picker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.HomeGroup;
    picker.FileTypeFilter.Clear();
    picker.FileTypeFilter.Add("*");
    
  2. De bestandskiezer weergeven en het gekozen bestand verwerken.

    Nadat u de bestandskiezer hebt gemaakt en aangepast, laat u de gebruiker één bestand kiezen door FileOpenPicker.PickSingleFileAsync of meerdere bestanden aan te roepen door FileOpenPicker.PickMultipleFilesAsync aan te roepen.

    In dit voorbeeld wordt de bestandskiezer weergegeven zodat de gebruiker één bestand kan kiezen:

    Windows.Storage.StorageFile file = await picker.PickSingleFileAsync();
    
    if (file != null)
    {
        // Do something with the file.
    }
    else
    {
        // No file returned. Handle the error.
    }   
    

Zoeken in de thuisgroep naar bestanden

In deze sectie wordt beschreven hoe u HomeGroup-items kunt vinden die overeenkomen met een queryterm die door de gebruiker is opgegeven.

  1. De vraagterm van de gebruiker ophalen.

    Hier krijgen we een queryterm die de gebruiker heeft ingevoerd in een tekstvak besturingselement met de naam searchQueryTextBox:

    string queryTerm = this.searchQueryTextBox.Text;    
    
  2. Stel de queryopties en het zoekfilter in.

    Queryopties bepalen hoe de zoekresultaten worden gesorteerd, terwijl het zoekfilter bepaalt welke items worden opgenomen in de zoekresultaten.

    In dit voorbeeld worden queryopties ingesteld waarmee de zoekresultaten worden gesorteerd op relevantie en vervolgens op de gewijzigde datum. Het zoekfilter is de queryterm die de gebruiker in de vorige stap heeft ingevoerd:

    Windows.Storage.Search.QueryOptions queryOptions =
            new Windows.Storage.Search.QueryOptions
                (Windows.Storage.Search.CommonFileQuery.OrderBySearchRank, null);
    queryOptions.UserSearchFilter = queryTerm.Text;
    Windows.Storage.Search.StorageFileQueryResult queryResults =
            Windows.Storage.KnownFolders.HomeGroup.CreateFileQueryWithOptions(queryOptions);    
    
  3. Voer de query uit en verwerkt de resultaten.

    In het volgende voorbeeld wordt de zoekquery uitgevoerd in de HomeGroup en worden de namen van overeenkomende bestanden opgeslagen als een lijst met tekenreeksen.

    System.Collections.Generic.IReadOnlyList<Windows.Storage.StorageFile> files =
        await queryResults.GetFilesAsync();
    
    if (files.Count > 0)
    {
        outputString += (files.Count == 1) ? "One file found\n" : files.Count.ToString() + " files found\n";
        foreach (Windows.Storage.StorageFile file in files)
        {
            outputString += file.Name + "\n";
        }
    }    
    

Zoeken in de Thuisgroep naar de gedeelde bestanden van een bepaalde gebruiker

In deze sectie wordt beschreven hoe u HomeGroup-bestanden kunt vinden die worden gedeeld door een bepaalde gebruiker.

  1. Een verzameling thuisgroep-gebruikers ophalen.

    Elk van de mappen op het eerste niveau in de Thuisgroep vertegenwoordigt een afzonderlijke HomeGroup-gebruiker. Als u de verzameling thuisgroepgebruikers wilt ophalen, roept u GetFoldersAsync aan de mappen homegroup op het hoogste niveau op te halen.

    System.Collections.Generic.IReadOnlyList<Windows.Storage.StorageFolder> hgFolders =
        await Windows.Storage.KnownFolders.HomeGroup.GetFoldersAsync();    
    
  2. Zoek de map van de doelgebruiker en maak vervolgens een bestandsquery die is gericht op de map van die gebruiker.

    In het volgende voorbeeld worden de opgehaalde mappen doorgelopen om de map van de beoogde gebruiker te vinden. Vervolgens worden queryopties ingesteld om alle bestanden in de map te vinden, eerst gesorteerd op relevantie en vervolgens op datum gewijzigd. In het voorbeeld wordt een tekenreeks gemaakt waarmee het aantal gevonden bestanden wordt gerapporteerd, samen met de namen van de bestanden.

    bool userFound = false;
    foreach (Windows.Storage.StorageFolder folder in hgFolders)
    {
        if (folder.DisplayName == targetUserName)
        {
            // Found the target user's folder, now find all files in the folder.
            userFound = true;
            Windows.Storage.Search.QueryOptions queryOptions =
                new Windows.Storage.Search.QueryOptions
                    (Windows.Storage.Search.CommonFileQuery.OrderBySearchRank, null);
            queryOptions.UserSearchFilter = "*";
            Windows.Storage.Search.StorageFileQueryResult queryResults =
                folder.CreateFileQueryWithOptions(queryOptions);
            System.Collections.Generic.IReadOnlyList<Windows.Storage.StorageFile> files =
                await queryResults.GetFilesAsync();
    
            if (files.Count > 0)
            {
                string outputString = "Searched for files belonging to " + targetUserName + "'\n";
                outputString += (files.Count == 1) ? "One file found\n" : files.Count.ToString() + " files found\n";
                foreach (Windows.Storage.StorageFile file in files)
                {
                    outputString += file.Name + "\n";
                }
            }
        }
    }    
    

Video streamen vanuit de HomeGroup

Volg deze stappen om video-inhoud te streamen vanuit de HomeGroup:

  1. Neem een MediaElement op in uw app.

    Met Een MediaElement kunt u audio- en video-inhoud afspelen in uw app. Voor meer informatie over het afspelen van audio en video, zie Aangepaste transportbesturingselementen maken en Audio, video en camera.

    <Grid x:Name="Output" HorizontalAlignment="Left" VerticalAlignment="Top" Grid.Row="1">
        <MediaElement x:Name="VideoBox" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="0" Width="400" Height="300"/>
    </Grid>    
    
  2. Open een bestandskiezer bij de Thuisgroep en pas een filter toe dat videobestanden bevat in de indelingen die uw app ondersteunt.

    Dit voorbeeld bevat .mp4- en .wmv-bestanden in de bestandskiezer.

    Windows.Storage.Pickers.FileOpenPicker picker = new Windows.Storage.Pickers.FileOpenPicker();
    picker.ViewMode = Windows.Storage.Pickers.PickerViewMode.Thumbnail;
    picker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.HomeGroup;
    picker.FileTypeFilter.Clear();
    picker.FileTypeFilter.Add(".mp4");
    picker.FileTypeFilter.Add(".wmv");
    Windows.Storage.StorageFile file = await picker.PickSingleFileAsync();   
    
  3. Open de bestandsselectie van de gebruiker voor leestoegang en stel de bestandsstroom in als bron voor hetMediaElement en speel het bestand af.

    if (file != null)
    {
        var stream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read);
        VideoBox.SetSource(stream, file.ContentType);
        VideoBox.Stop();
        VideoBox.Play();
    }
    else
    {
        // No file selected. Handle the error here.
    }