Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Você pode usar Reprodução Automática para disponibilizar seu aplicativo como uma opção quando um usuário conecta um dispositivo ao PC. Isso inclui dispositivos que não armazenam dados em volume, como uma câmera ou player de mídia, ou dispositivos de armazenamento em volume, como um pendrive USB, cartão SD ou DVD. Você também pode usar de Reprodução Automática para oferecer seu aplicativo como uma opção quando os usuários compartilham arquivos entre dois computadores usando proximidade (toque).
Observação
Se você for um fabricante de dispositivos e quiser associar seu aplicativo de dispositivo da Microsoft Store como um manipulador de Reprodução Automática para seu dispositivo, poderá identificar esse aplicativo nos metadados do seu dispositivo. Para obter mais informações, consulte AutoPlay para aplicativos de dispositivo da Microsoft Store.
Inscreva-se para conteúdo de AutoPlay
Você pode registrar aplicativos como opções para eventos de conteúdo de de Reprodução Automática. a Reprodução Automática eventos de conteúdo são gerados quando um dispositivo de volume, como cartão de memória da câmera, pen drive ou DVD, é inserido no computador. Mostramos aqui como identificar seu aplicativo como uma opção de AutoPlay quando um dispositivo de volume de uma câmera é inserido.
Neste tutorial, você criou um aplicativo que exibe arquivos de imagem ou os copia para Imagens. Você registrou o aplicativo para o evento de conteúdo de Reprodução Automática: ShowPicturesOnArrival.
A Reprodução Automática também gera eventos de conteúdo para conteúdo compartilhado entre computadores usando proximidade (toque). Você pode usar as etapas e o código nesta seção para lidar com arquivos compartilhados entre computadores que usam proximidade. A tabela a seguir lista os eventos de conteúdo de AutoPlay que estão disponíveis para compartilhar conteúdo usando o recurso de proximidade.
Ação | Evento de Reprodução Automática de Conteúdo |
---|---|
Compartilhando música | PlayMusicFilesOnArrival |
Compartilhando vídeos | PlayVideoFilesOnArrival |
Quando os arquivos são compartilhados usando proximidade, a propriedade Files do objeto FileActivatedEventArgs contém uma referência a uma pasta raiz que contém todos os arquivos compartilhados.
Etapa 1: Criar um novo projeto e adicionar declarações de Reprodução Automática
- Abra o Microsoft Visual Studio e selecione Novo Projeto no menu Arquivo. Na seção Visual C# , no Windows, selecione UWP Blank App (.NET Native). Nomeie o aplicativo AutoPlayDisplayOrCopyImages e clique em OK.
- Abra o arquivo Package.appxmanifest e selecione a guia Recursos. Selecione os recursos Armazenamento Removível e Biblioteca de Imagens. Isso fornece ao aplicativo acesso a dispositivos de armazenamento removíveis para memória da câmera e acesso a imagens locais.
- No arquivo de manifesto, selecione a guia Declarações. Na lista suspensa Declarações Disponíveis, selecione Conteúdo de Reprodução Automática e clique em Adicionar. Selecione o novo item de Conteúdo de Reprodução Automática
que foi adicionado à lista de Declarações com Suporte . - Uma declaração de Conteúdo de Reprodução Automática
identifica seu aplicativo como uma opção quando a Reprodução Automática gera um evento de conteúdo. O evento é baseado no conteúdo de um dispositivo de volume, como um DVD ou um pen drive. A Reprodução Automática examina o conteúdo do dispositivo de volume e determina qual evento de conteúdo deve ser gerado. Se a raiz do volume contiver uma pasta DCIM, AVCHD ou PRIVATE\ACHD ou se um usuário tiver habilitado Escolha o que fazer com cada tipo de mídia no Painel de Controle de Reprodução Automática e as imagens forem encontradas na raiz do volume, a Reprodução Automática gerará o evento ShowPicturesOnArrival. Na seção Ações de Inicialização, insira os valores da Tabela 1 abaixo para a primeira ação de inicialização. - Na seção Ações de Inicialização para o item Reprodução Automática, clique em Adicionar Novo para adicionar uma segunda ação de inicialização. Insira os valores na Tabela 2 abaixo para a segunda ação de inicialização.
- Na lista suspensa Declarações Disponíveis, selecione Associações de Tipo de Arquivo e clique em Adicionar. Nas propriedades da nova declaração associações de tipo de arquivo de
, defina o campo nome de exibição para de Cópia de Reprodução Automática ou Mostrar Imagens e o campo nome como image_association1 . Na seção Tipos de Arquivo com Suporte, clique em Adicionar Novo. Defina o campo tipo de arquivo como .jpg. Na seção Tipos de Arquivo Suportados, defina o campo Tipo de Arquivo da nova associação de arquivos como .png. Para eventos de conteúdo, o AutoPlay filtra todos os tipos de arquivo que não estão explicitamente associados ao seu aplicativo. - Salve e feche o arquivo de manifesto.
tabela 1
Configurações | Valor |
---|---|
Verbo | programa |
Nome de exibição da ação | Mostrar Imagens |
Evento de conteúdo | ExibirFotosNaChegada |
A configuração Nome de Exibição da Ação identifica o texto que a Reprodução Automática exibe para o seu aplicativo. A configuração do verbo identifica um valor que é passado para o seu aplicativo para a opção selecionada. Você pode especificar várias ações de inicialização para um evento de Reprodução Automática e usar a configuração Verbo para determinar qual opção um usuário selecionou para seu aplicativo. Você pode identificar qual opção o usuário selecionou verificando a propriedade do verbo
Tabela 2
Configurações | Valor |
---|---|
Verbo | copiar |
Nome de exibição da ação | Copiar imagens para a biblioteca |
Evento de conteúdo | ExibirFotosNaChegada |
Etapa 2: Adicionar UI XAML
Abra o arquivo MainPage.xaml e adicione o XAML a seguir à seção padrão <Grid>.
<TextBlock FontSize="18">File List</TextBlock>
<TextBlock x:Name="FilesBlock" HorizontalAlignment="Left" TextWrapping="Wrap"
VerticalAlignment="Top" Margin="0,20,0,0" Height="280" Width="240" />
<Canvas x:Name="FilesCanvas" HorizontalAlignment="Left" VerticalAlignment="Top"
Margin="260,20,0,0" Height="280" Width="100"/>
Etapa 3: Adicionar código de inicialização
O código nesta etapa verifica o valor do verbo na propriedade Verb, que é um dos argumentos de inicialização passados para o aplicativo durante o evento OnFileActivated. Em seguida, o código chama um método relacionado à opção selecionada pelo usuário. Para o evento relacionado à memória da câmera, o AutoPlay passa a pasta raiz do armazenamento da câmera para o aplicativo. Você pode recuperar essa pasta a partir do primeiro elemento da propriedade Files.
Abra o arquivo App.xaml.cs e adicione o código a seguir à classe App.
protected override void OnFileActivated(FileActivatedEventArgs args)
{
if (args.Verb == "show")
{
Frame rootFrame = (Frame)Window.Current.Content;
MainPage page = (MainPage)rootFrame.Content;
// Call DisplayImages with root folder from camera storage.
page.DisplayImages((Windows.Storage.StorageFolder)args.Files[0]);
}
if (args.Verb == "copy")
{
Frame rootFrame = (Frame)Window.Current.Content;
MainPage page = (MainPage)rootFrame.Content;
// Call CopyImages with root folder from camera storage.
page.CopyImages((Windows.Storage.StorageFolder)args.Files[0]);
}
base.OnFileActivated(args);
}
Observação
Os DisplayImages
métodos e os CopyImages
métodos são adicionados nas etapas a seguir.
Etapa 4: Adicionar código para exibir imagens
No arquivo MainPage.xaml.cs, adicione o código a seguir à classe MainPage.
async internal void DisplayImages(Windows.Storage.StorageFolder rootFolder)
{
// Display images from first folder in root\DCIM.
var dcimFolder = await rootFolder.GetFolderAsync("DCIM");
var folderList = await dcimFolder.GetFoldersAsync();
var cameraFolder = folderList[0];
var fileList = await cameraFolder.GetFilesAsync();
for (int i = 0; i < fileList.Count; i++)
{
var file = (Windows.Storage.StorageFile)fileList[i];
WriteMessageText(file.Name + "\n");
DisplayImage(file, i);
}
}
async private void DisplayImage(Windows.Storage.IStorageItem file, int index)
{
try
{
var sFile = (Windows.Storage.StorageFile)file;
Windows.Storage.Streams.IRandomAccessStream imageStream =
await sFile.OpenAsync(Windows.Storage.FileAccessMode.Read);
Windows.UI.Xaml.Media.Imaging.BitmapImage imageBitmap =
new Windows.UI.Xaml.Media.Imaging.BitmapImage();
imageBitmap.SetSource(imageStream);
var element = new Image();
element.Source = imageBitmap;
element.Height = 100;
Thickness margin = new Thickness();
margin.Top = index * 100;
element.Margin = margin;
FilesCanvas.Children.Add(element);
}
catch (Exception e)
{
WriteMessageText(e.Message + "\n");
}
}
// Write a message to MessageBlock on the UI thread.
private Windows.UI.Core.CoreDispatcher messageDispatcher = Window.Current.CoreWindow.Dispatcher;
private async void WriteMessageText(string message, bool overwrite = false)
{
await messageDispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal,
() =>
{
if (overwrite)
FilesBlock.Text = message;
else
FilesBlock.Text += message;
});
}
Etapa 5: Adicionar código para copiar imagens
No arquivo MainPage.xaml.cs, adicione o código a seguir à classe MainPage.
async internal void CopyImages(Windows.Storage.StorageFolder rootFolder)
{
// Copy images from first folder in root\DCIM.
var dcimFolder = await rootFolder.GetFolderAsync("DCIM");
var folderList = await dcimFolder.GetFoldersAsync();
var cameraFolder = folderList[0];
var fileList = await cameraFolder.GetFilesAsync();
try
{
var folderName = "Images " + DateTime.Now.ToString("yyyy-MM-dd HHmmss");
Windows.Storage.StorageFolder imageFolder = await
Windows.Storage.KnownFolders.PicturesLibrary.CreateFolderAsync(folderName);
foreach (Windows.Storage.IStorageItem file in fileList)
{
CopyImage(file, imageFolder);
}
}
catch (Exception e)
{
WriteMessageText("Failed to copy images.\n" + e.Message + "\n");
}
}
async internal void CopyImage(Windows.Storage.IStorageItem file,
Windows.Storage.StorageFolder imageFolder)
{
try
{
Windows.Storage.StorageFile sFile = (Windows.Storage.StorageFile)file;
await sFile.CopyAsync(imageFolder, sFile.Name);
WriteMessageText(sFile.Name + " copied.\n");
}
catch (Exception e)
{
WriteMessageText("Failed to copy file.\n" + e.Message + "\n");
}
}
Etapa 6: Criar e executar o aplicativo
- Pressione F5 para compilar e implantar o aplicativo (no modo de depuração).
- Para executar seu aplicativo, insira um cartão de memória da câmera ou outro dispositivo de armazenamento de uma câmera no computador. Em seguida, selecione uma das opções de evento de conteúdo especificadas no arquivo package.appxmanifest na lista de opções de Reprodução Automática. Este código de exemplo exibe ou copia apenas imagens na pasta DCIM de um cartão de memória da câmera. Se o cartão de memória da câmera armazenar imagens em uma pasta AVCHD ou PRIVATE\ACHD, você precisará atualizar o código adequadamente.
Observação
Se você não tiver um cartão de memória de câmera, poderá usar uma unidade flash se ela tiver uma pasta chamada DCIM na raiz e se a pasta DCIM tiver uma subpasta que contenha imagens.
Registrar-se para um dispositivo de Reprodução Automática
Você pode registrar aplicativos como opções para eventos de Reprodução Automática. Os eventos de dispositivo de Reprodução Automática são gerados quando um dispositivo é conectado a um PC.
Aqui, mostramos como identificar seu aplicativo como uma opção de Reprodução Automática quando uma câmera está conectada a um computador. O aplicativo se registra como um manipulador para o evento WPD\ImageSourceAutoPlay. Este é um evento comum que o sistema de Dispositivo Portátil do Windows (WPD) gera quando câmeras e outros dispositivos de imagem notificam que são fontes de imagem usando o MTP. Para obter mais informações, consulte Dispositivos Portáteis do Windows.
Importante As APIs de Windows.Devices.Portable.StorageDevice fazem parte da família de dispositivos de desktop . Os aplicativos podem usar essas APIs somente em dispositivos Windows 10 na família de dispositivos da área de trabalho, como computadores.
Etapa 1: Criar outro novo projeto e adicionar declarações de Reprodução Automática
- Abra o Visual Studio e selecione Novo Projeto no menu Arquivo. Na seção Visual C# , no Windows, selecione UWP Blank App (.NET Native). Nomeie o aplicativo AutoPlayDevice_Camera e clique em OK.
- Abra o arquivo Package.appxmanifest e selecione a guia Recursos. Selecione a capacidade de Armazenamento Removível. Isso fornece ao aplicativo acesso aos dados na câmera como um dispositivo de volume de armazenamento removível.
- No arquivo de manifesto, selecione a guia Declarações. Na lista suspensa Declarações Disponíveis, selecione Dispositivo de Reprodução Automática e clique em Adicionar. Selecione o novo item dispositivo de reprodução automática que foi adicionado à lista de declarações com suporte .
- Uma declaração do Dispositivo de Reprodução Automática
identifica seu aplicativo como uma opção quando a Reprodução Automática gera um evento de dispositivo para eventos conhecidos. Na seção Ações de Inicialização, insira os valores na tabela abaixo para a primeira ação de inicialização. - Na lista suspensa Declarações Disponíveis, selecione Associações de Tipo de Arquivo e clique em Adicionar. Nas propriedades da nova declaração associações de tipo de arquivo
, defina o campo nome de exibição para mostrar imagens do da câmera e o campo de Nomecomo camera_association1 . Na seção Tipos de Arquivo com Suporte, clique em Adicionar Novo (se necessário). Defina o campo tipo de arquivo como .jpg. Na seção Tipos de Arquivo Suportados, clique em Adicionar Novo novamente. Defina o campo do tipo de arquivo da nova associação de arquivo para .png. Para eventos de conteúdo, o AutoPlay filtra todos os tipos de arquivo que não estão explicitamente associados ao seu aplicativo. - Salve e feche o arquivo de manifesto.
Configurações | Valor |
---|---|
Verbo | programa |
Nome de exibição da ação | Mostrar Imagens |
Evento de conteúdo | WPD\ImageSource |
A configuração Nome de Exibição da Ação identifica o texto que a Reprodução Automática exibe para o seu aplicativo. A configuração do verbo identifica um valor que é passado para o seu aplicativo para a opção selecionada. Você pode especificar várias ações de inicialização para um evento de Reprodução Automática e usar a configuração Verbo para determinar qual opção um usuário selecionou para seu aplicativo. Você pode identificar qual opção o usuário selecionou verificando a propriedade do verbo
Etapa 2: Adicione a referência de assembly para as extensões do desktop
As APIs necessárias para acessar o armazenamento em um Dispositivo Portátil do Windows, Windows.Devices.Portable.StorageDevice, fazem parte da família de dispositivos da área de trabalho. Isso significa que um assembly especial é necessário para usar as APIs e essas chamadas só funcionarão em um dispositivo na família de dispositivos de desktop (como um computador).
- No Gerenciador de Soluções, clique com o botão direito do mouse em Referências e, em seguida, Adicionar Referência....
- Expanda Windows Universal e clique em Extensões.
- Depois, selecione Extensões da Área de Trabalho do Windows para o UWP e clique em OK.
Etapa 3: Adicionar UI em XAML
Abra o arquivo MainPage.xaml e adicione o XAML a seguir à seção padrão <Grid>.
<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>
Etapa 4: Adicionar código de ativação
O código nesta etapa faz referência à câmera como um StorageDevice passando a ID de informação do dispositivo da câmera para o método FromId. A ID de informações do dispositivo da câmera é obtida primeiro lançando os argumentos do evento como DeviceActivatedEventArgse, em seguida, obtendo o valor da propriedade DeviceInformationId.
Abra o arquivo App.xaml.cs e adicione o código a seguir à 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();
// Make sure the necessary APIs are present on the device
bool storageDeviceAPIPresent =
Windows.Foundation.Metadata.ApiInformation.IsTypePresent("Windows.Devices.Portable.StorageDevice");
if (storageDeviceAPIPresent)
{
// 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));
}
}
else
{
// Handle case where APIs are not present (when the device is not part of the desktop device family)
}
}
base.OnActivated(args);
}
Observação
O método ShowImages
é adicionado na etapa a seguir.
Etapa 5: Adicionar código para exibir informações do dispositivo
Você pode obter informações sobre a câmera a partir das propriedades da classe StorageDevice. O código nesta etapa exibe o nome do dispositivo e outras informações para o usuário quando o aplicativo é executado. Em seguida, o código chama os métodos GetImageList e GetThumbnail, que você adicionará na próxima etapa, para exibir miniaturas das imagens armazenadas na câmera
No arquivo MainPage.xaml.cs, adicione o seguinte código à 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));
}
}
Observação
Os métodos GetImageList
e GetThumbnail
são adicionados na etapa a seguir.
Etapa 6: Adicionar código para exibir imagens
O código nesta etapa exibe miniaturas das imagens armazenadas na câmera. O código faz chamadas assíncronas para a câmera para obter a imagem em miniatura. No entanto, a próxima chamada assíncrona não ocorre até que a chamada assíncrona anterior seja concluída. Isso garante que apenas uma solicitação seja feita para a câmera de cada vez.
No arquivo MainPage.xaml.cs, adicione o seguinte código à 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;
}
Etapa 7: Criar e executar o aplicativo
- Pressione F5 para compilar e implantar o aplicativo (no modo de depuração).
- Para executar seu aplicativo, conecte uma câmera ao computador. Em seguida, selecione o aplicativo na lista de opções de Reprodução Automática.
Observação
Nem todas as câmeras notificam o evento de dispositivo WPD\ImageSource AutoPlay.
Configurar o armazenamento removível
Você pode identificar um dispositivo de volume, como um cartão de memória ou um pendrive, como um dispositivo de Reprodução Automática quando o dispositivo de volume está conectado a um computador. Isso é especialmente útil quando você deseja associar um aplicativo específico para Reprodução Automática a ser apresentado ao usuário para o seu dispositivo de volume.
Aqui mostramos como identificar seu dispositivo de volume como um dispositivo de Reprodução Automática.
Para identificar seu dispositivo de volume como um dispositivo AutoPlay, adicione um arquivo autorun.inf à unidade raiz do dispositivo. No arquivo autorun.inf, adicione a chave CustomEvent à seção AutoRun. Quando o dispositivo de volume se conecta a um computador, a Reprodução Automática encontrará o arquivo autorun.inf e tratará seu volume como um dispositivo.
Etapa 1: Criar um arquivo autorun.inf
Na pasta raiz da unidade de volume do seu dispositivo, adicione um arquivo chamado autorun.inf. Abra o arquivo autorun.inf e adicione o texto a seguir.
[AutoRun]
CustomEvent=AutoPlayCustomEventQuickstart
Etapa 2: Criar um novo projeto e adicionar declarações de Reprodução Automática
Abra o Visual Studio e selecione Novo Projeto no menu Arquivo. Na seção Visual C# , no Windows, selecione UWP Blank App (.NET Native). Nomeie o aplicativo AutoPlayCustomEvent e clique em OK.
Abra o arquivo Package.appxmanifest e selecione a guia Recursos. Selecione a capacidade de Armazenamento Removível. Isso fornece ao aplicativo acesso aos arquivos e pastas em dispositivos de armazenamento removíveis.
No arquivo de manifesto, selecione a guia Declarações. Na lista suspensa Declarações Disponíveis, selecione Conteúdo de Reprodução Automática e clique em Adicionar. Selecione o novo item de Conteúdo de Reprodução Automática
que foi adicionado à lista de Declarações com Suporte .Observação
Como alternativa, você também pode optar por adicionar uma declaração do Dispositivo de Reprodução Automática
para seu evento de Reprodução Automática personalizado. Na seção Ações de Inicialização, para sua declaração de evento de Conteúdo de Reprodução Automática , insira os valores na tabela abaixo para a primeira ação de inicialização.
Na lista suspensa Declarações Disponíveis, selecione Associações de Tipo de Arquivo e clique em Adicionar. Nas propriedades da nova declaração associações de tipos de arquivos, defina o campo Nome de Exibição para Mostrar arquivos .ms e o campo Nome como ms_association. Na seção Tipos de Arquivo com Suporte, clique em Adicionar Novo. Defina o campo Tipo de Arquivo para .ms. Para eventos de conteúdo, o AutoPlay filtra todos os tipos de arquivos que não estão explicitamente associados ao seu aplicativo.
Salve e feche o arquivo de manifesto.
Configurações | Valor |
---|---|
Verbo | programa |
Nome de exibição da ação | Mostrar Arquivos |
Evento de conteúdo | Início Rápido de Evento Personalizado de Reprodução Automática |
O valor de Evento de Conteúdo é o texto que você forneceu para a chave CustomEvent em seu arquivo autorun.inf. A configuração Nome de Exibição da Ação identifica o texto que a Reprodução Automática exibe para o seu aplicativo. A configuração do verbo identifica um valor que é passado para o seu aplicativo para a opção selecionada. Você pode especificar várias ações de inicialização para um evento de Reprodução Automática e usar a configuração Verbo para determinar qual opção um usuário selecionou para seu aplicativo. Você pode identificar qual opção o usuário selecionou verificando a propriedade do verbo
Etapa 3: Adicionar a interface do usuário XAML
Abra o arquivo MainPage.xaml e adicione o XAML a seguir à seção padrão <Grid>.
<StackPanel Orientation="Vertical">
<TextBlock FontSize="28" Margin="10,0,800,0">Files</TextBlock>
<TextBlock x:Name="FilesBlock" FontSize="22" Height="600" Margin="10,0,800,0" />
</StackPanel>
Etapa 4: Adicionar o código de ativação
O código nesta etapa chama um método para exibir as pastas na unidade raiz do dispositivo de volume. Para os eventos de conteúdo do AutoPlay, o AutoPlay passa a pasta raiz do dispositivo de armazenamento nos argumentos de linha de comando passados para o aplicativo durante o evento OnFileActivated. Você pode recuperar essa pasta a partir do primeiro elemento da propriedade Files.
Abra o arquivo App.xaml.cs e adicione o código a seguir à classe App.
protected override void OnFileActivated(FileActivatedEventArgs args)
{
var rootFrame = Window.Current.Content as Frame;
var page = rootFrame.Content as MainPage;
// Call ShowFolders with root folder from device storage.
page.DisplayFiles(args.Files[0] as Windows.Storage.StorageFolder);
base.OnFileActivated(args);
}
Observação
O método DisplayFiles
é adicionado na etapa a seguir.
Etapa 5: Adicionar código para exibir pastas
No arquivo MainPage.xaml.cs, adicione o código a seguir à classe MainPage.
internal async void DisplayFiles(Windows.Storage.StorageFolder folder)
{
foreach (Windows.Storage.StorageFile f in await ReadFiles(folder, ".ms"))
{
FilesBlock.Text += " " + f.Name + "\n";
}
}
internal async System.Threading.Tasks.Task<IReadOnlyList<Windows.Storage.StorageFile>>
ReadFiles(Windows.Storage.StorageFolder folder, string fileExtension)
{
var options = new Windows.Storage.Search.QueryOptions();
options.FileTypeFilter.Add(fileExtension);
var query = folder.CreateFileQueryWithOptions(options);
var files = await query.GetFilesAsync();
return files;
}
Etapa 6: Criar e executar o aplicativo
- Pressione F5 para compilar e implantar o aplicativo (no modo de depuração).
- Para executar seu aplicativo, insira um cartão de memória ou outro dispositivo de armazenamento no computador. Em seguida, selecione seu aplicativo na lista de opções do manipulador de Reprodução Automática.
Referência de Evento AutoPlay
O sistema de de Reprodução Automática permite que os aplicativos se inscrevam para uma variedade de eventos de chegada de dispositivos e volumes (discos). Para se registrar em eventos de conteúdo do AutoPlay, você deve habilitar a capacidade de Armazenamento Removível no manifesto do pacote. Esta tabela mostra os eventos para os quais você pode se registrar e quando eles são gerados.
Cenário | Acontecimento | Descrição |
---|---|---|
Usando fotos em uma câmera | WPD\ImageSource | Gerado para câmeras identificadas como Dispositivos Portáteis do Windows e que oferecem a funcionalidade ImageSource. |
Usando música em um reprodutor de áudio | WPD\AudioSource | Gerado para players de mídia identificados como Dispositivos Portáteis do Windows e que oferecem a funcionalidade AudioSource. |
Usando vídeos em uma câmera de vídeo | WPD\VideoSource | Gerado para câmeras de vídeo que são identificadas como Dispositivos Portáteis do Windows e oferecem a funcionalidade VideoSource. |
Acessar uma unidade flash conectada ou disco rígido externo | |
Gerado quando uma unidade ou volume está conectado ao PC. Se a unidade ou volume contiver uma pasta DCIM, AVCHD ou PRIVATE\ACHD na raiz do disco, o evento ShowPicturesOnArrival será gerado. |
Usando fotos do armazenamento em massa (herdado) | MostrarImagensNaChegada |
Gerado quando uma unidade ou volume contém uma pasta DCIM, AVCHD ou PRIVATE/ACHD na raiz do disco. Se um usuário tiver habilitado Escolher o que fazer com cada tipo de mídia no Painel de Controle do AutoPlay, o AutoPlay examinará um volume conectado ao PC para determinar o tipo de conteúdo no disco. Quando as imagens são encontradas, é acionado o ShowPicturesOnArrival. |
Recebendo fotos com o Compartilhamento de Proximidade (toque e enviar) | MostrarImagensNaChegada |
Quando os usuários enviam conteúdo usando a proximidade (toque e envie), a Reprodução Automática examinará os arquivos compartilhados para determinar o tipo de conteúdo. Se as imagens forem encontradas, o ShowPicturesOnArrival será gerado. |
Usando música do armazenamento em massa (herdado) | ReproduzirArquivosDeMúsicaNaChegada | Se um usuário tiver habilitado Escolha o que fazer com cada tipo de mídia no Painel de Controle do AutoPlay, o AutoPlay examinará um volume conectado ao computador para determinar o tipo de conteúdo no disco. Quando arquivos de música são encontrados, PlayMusicFilesOnArrival é gerado. |
Recebendo música com compartilhamento por proximidade (toque e enviar) | ReproduzirArquivosDeMúsicaNaChegada | Quando os usuários enviam conteúdo usando a proximidade (toque e envie), a Reprodução Automática examinará os arquivos compartilhados para determinar o tipo de conteúdo. Se os arquivos de música forem encontrados, PlayMusicFilesOnArrival é acionado. |
Usando vídeos do armazenamento em massa (herdado) | ReproduzirArquivosDeVídeoNaChegada | Se um usuário tiver habilitado Escolha o que fazer com cada tipo de mídia no Painel de Controle do AutoPlay, o AutoPlay examinará um volume conectado ao computador para determinar o tipo de conteúdo no disco. Quando arquivos de vídeo são encontrados, PlayVideoFilesOnArrival é acionado. |
Recebendo vídeos com compartilhamento por proximidade (toque e enviar) | ReproduzirArquivosDeVídeoNaChegada | Quando os usuários enviam conteúdo usando a proximidade (toque e envie), a Reprodução Automática examinará os arquivos compartilhados para determinar o tipo de conteúdo. Se os arquivos de vídeo forem encontrados, será gerado PlayVideoFilesOnArrival. |
Manipulando conjuntos mistos de arquivos de um dispositivo conectado | ConteúdoMistoNaChegada | Se um usuário tiver habilitado Escolha o que fazer com cada tipo de mídia no Painel de Controle do AutoPlay, o AutoPlay examinará um volume conectado ao computador para determinar o tipo de conteúdo no disco. Se nenhum tipo de conteúdo específico for encontrado (por exemplo, imagens), MixedContentOnArrival será acionado. |
Manipulando conjuntos mistos de arquivos com Compartilhamento de Proximidade (toque e envio) | ConteúdoMistoNaChegada | Quando os usuários enviam conteúdo usando a proximidade (toque e envie), a Reprodução Automática examinará os arquivos compartilhados para determinar o tipo de conteúdo. Se nenhum tipo de conteúdo específico for encontrado (por exemplo, imagens), MixedContentOnArrival será acionado. |
Manipular vídeo de mídia óptica |
ReproduzirFilmeDVDNaChegada PlayBluRayOnArrival ReproduzirFilmeDeCDDeVídeoNaChegada ReproduzirFilmeSuperVideoCDNaChegada |
Quando um disco é inserido na unidade óptica, a Reprodução Automática examinará os arquivos para determinar o tipo de conteúdo. Quando arquivos de vídeo são encontrados, o evento correspondente ao tipo de disco óptico é gerado. |
Manipular música de mídia óptica |
ReproduzirCDAudioNaChegada ReproduzirÁudioDoDVDNaChegada |
Quando um disco é inserido na unidade óptica, a Reprodução Automática examinará os arquivos para determinar o tipo de conteúdo. Quando arquivos de música são encontrados, o evento correspondente ao tipo de disco óptico é gerado. |
Reproduzir discos aprimorados |
ReproduzirCDRealçadoAoChegar ReproduzirDVDMelhoradoNaChegada |
Quando um disco é inserido na unidade óptica, a Reprodução Automática examinará os arquivos para determinar o tipo de conteúdo. Quando um disco aprimorado é encontrado, o evento correspondente ao tipo de disco óptico é gerado. |
Manipular discos ópticos graváveis |
HandleCDBurningOnArrival HandleDVDBurningOnArrival HandleBDBurningOnArrival |
Quando um disco é inserido na unidade óptica, a Reprodução Automática examinará os arquivos para determinar o tipo de conteúdo. Quando um disco gravável é encontrado, o evento correspondente ao tipo de disco óptico é gerado. |
Gerenciar qualquer outro dispositivo ou conexão de volume | ConteúdoDesconhecidoNaChegada | Gerado para todos os eventos caso seja encontrado conteúdo que não corresponda a nenhum dos eventos de conteúdo do AutoPlay. O uso desse evento não é recomendado. Você só deve registrar seu aplicativo para os eventos específicos de AutoPlay que ele pode suportar. |
Você pode especificar que o AutoPlay dispare um evento personalizado usando a entrada CustomEvent no arquivo autorun.inf para um volume. Para obter mais informações, consulte entradas Autorun.inf.
Você pode registrar seu aplicativo como um manipulador de eventos de Conteúdo de Reprodução Automática ou Dispositivo de Reprodução Automática adicionando uma extensão ao arquivo package.appxmanifest para seu aplicativo. Se você estiver usando o Visual Studio, poderá adicionar uma declaração de Conteúdo de Reprodução Automática ou de Dispositivo de Reprodução Automática na guia Declarações . Se você estiver editando diretamente o arquivo package.appxmanifest para seu aplicativo, adicione um elemento Extension ao manifesto do pacote que especifica windows.autoPlayContent ou windows.autoPlayDevice como a Categoria . Por exemplo, a entrada a seguir no manifesto do pacote adiciona uma extensão de Conteúdo de Reprodução Automática para registrar o aplicativo como um manipulador para o evento ShowPicturesOnArrival.
<Applications>
<Application Id="AutoPlayHandlerSample.App">
<Extensions>
<Extension Category="windows.autoPlayContent">
<AutoPlayContent>
<LaunchAction Verb="show" ActionDisplayName="Show Pictures"
ContentEvent="ShowPicturesOnArrival" />
</AutoPlayContent>
</Extension>
</Extensions>
</Application>
</Applications>