Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Puoi usare AutoPlay per fornire la tua app come opzione quando un utente connette un dispositivo al PC. Sono inclusi dispositivi non di volume, ad esempio una fotocamera o un lettore multimediale, o dispositivi di volume, ad esempio un'unità USB, una scheda SD o un DVD. Puoi anche usare AutoPlay per offrire la tua app come opzione quando gli utenti condividono file tra due PC usando prossimità (toccando).
Annotazioni
Se sei un produttore del dispositivo e vuoi associare il tuo
Iscriviti per il contenuto AutoPlay
Puoi registrare le app come opzioni per eventi di contenuto AutoPlay.
gli eventi di contenuto di AutoPlay vengono generati quando un dispositivo di archiviazione, ad esempio una scheda di memoria della fotocamera, una chiavetta USB o un DVD, viene inserito nel PC. Qui viene illustrato come identificare l'app come opzione
In questo tutorial, hai creato un'app che visualizza file di immagine o li copia nella cartella Immagini. Hai registrato l'app per l'evento di contenuto AutoPlay ShowPicturesOnArrival.
AutoPlay genera anche eventi di contenuto per il contenuto condiviso tra PC tramite prossimità (tocco). È possibile usare i passaggi e il codice in questa sezione per gestire i file condivisi tra PC che usano la prossimità. Nella tabella seguente sono elencati gli eventi di contenuto AutoPlay disponibili per la condivisione del contenuto tramite prossimità.
Azione | Evento di contenuto AutoPlay |
---|---|
Condivisione della musica | PlayMusicFilesOnArrival |
Condivisione di video | Riproduci file video all'arrivo |
Quando i file vengono condivisi tramite prossimità, la proprietà Files dell'oggetto FileActivatedEventArgs contiene un riferimento a una cartella radice che include tutti i file condivisi.
Passaggio 1: Creare un nuovo progetto e aggiungere dichiarazioni AutoPlay
- Aprire Microsoft Visual Studio e selezionare Nuovo progetto dal menu File. Nella sezione Visual C# in Windows selezionare App vuota UWP (.NET Native). Denominare l'app AutoPlayDisplayOrCopyImages e fare clic su OK.
- Aprire il file Package.appxmanifest e selezionare la scheda capacità. Selezionare le funzionalità archiviazione rimovibile e libreria immagini. In questo modo l'app può accedere ai dispositivi di archiviazione rimovibili per la memoria della fotocamera e all'accesso alle immagini locali.
- Nel file manifesto selezionare la scheda Dichiarazioni. Nell'elenco a discesa Dichiarazioni disponibili selezionare AutoPlay Content e fare clic su Aggiungi. Selezionare il nuovo elemento contenuto AutoPlay aggiunto all'elenco dichiarazioni supportate.
- Una dichiarazione di AutoPlay contenuto identifica l'app come opzione quando AutoPlay genera un evento di contenuto. L'evento si basa sul contenuto di un dispositivo di archiviazione, come ad esempio un DVD o una chiavetta USB. AutoPlay esamina il contenuto del dispositivo del volume e determina l'evento di contenuto da generare. Se la radice del volume contiene una cartella DCIM, AVCHD o PRIVATE\ACHD oppure se un utente ha abilitato Scegliere cosa fare con ogni tipo di supporto nel Pannello di controllo AutoPlay e le immagini vengono trovate nella radice del volume, AutoPlay genera l'evento ShowPicturesOnArrival. Nella sezione Avvia azioni immettere i valori riportati nella tabella 1 seguente per la prima azione di avvio.
- Nella sezione Azioni di avvio per l'elemento Contenuto AutoPlay, fare clic su Aggiungi Nuovo per aggiungere una seconda azione di avvio. Immettere i valori nella tabella 2 seguente per la seconda azione di avvio.
- Nell'elenco a discesa dichiarazioni disponibili, selezionare associazioni di tipi di file e cliccare su Aggiungi. Nella dichiarazione Proprietà della nuova dichiarazione
Associazioni tipi di file impostare il campo nome visualizzato su tipo di filecopia automatica o mostra immagini e il campo Nomesu image_association1 . Nella sezione Tipi di file supportati, fare clic su Aggiungi Nuovo. Impostare il campo di tipo di file su .jpg. Nella sezioneTipi di file supportati impostare il campodella nuova associazione di file su .png . Per gli eventi di contenuto, AutoPlay filtra tutti i tipi di file che non sono associati in modo esplicito all'app. - Salvare e chiudere il file di manifesto.
Tabella 1
Impostazione | Valore |
---|---|
Verbo | spettacolo |
Nome azione visualizzato | Mostra immagini |
Evento di Contenuto | MostraImmaginiAll'Arrivo |
L'impostazione Nome visualizzato azione identifica la stringa che AutoPlay mostra per l'app. L'impostazione verbo identifica un valore passato all'app per l'opzione selezionata. Puoi specificare più azioni di avvio per un evento AutoPlay e usare l'impostazione verbo per determinare quale opzione un utente ha selezionato per la tua app. È possibile sapere quale opzione l'utente ha selezionato controllando la proprietà verbo degli argomenti dell'evento di avvio passati alla tua app. È possibile usare qualsiasi valore per l'impostazione verbo, ad eccezione di aperto, riservato.
Tabella 2
Impostazione | Valore |
---|---|
Verbo | Copia |
Nome azione visualizzato | Copiare le immagini nella libreria |
Evento di Contenuto | MostraImmaginiAll'Arrivo |
Passaggio 2: Aggiungere l'interfaccia utente XAML
Aprire il file MainPage.xaml e aggiungere il codice XAML seguente alla sezione predefinita <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"/>
Passaggio 3: Aggiungere il codice di inizializzazione
Il codice in questo passaggio controlla il valore del verbo nella proprietà Verbo, che è uno degli argomenti di avvio passati all'app durante l'evento OnFileActivated. Il codice chiama quindi un metodo correlato all'opzione selezionata dall'utente. Per l'evento relativo alla memoria della fotocamera, AutoPlay passa la directory principale dello spazio di archiviazione della fotocamera all'app. È possibile recuperare questa cartella dal primo elemento della proprietà Files.
Aprire il file App.xaml.cs e aggiungere il codice seguente alla 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);
}
Annotazioni
I DisplayImages
metodi e CopyImages
vengono aggiunti nei passaggi seguenti.
Passaggio 4: Aggiungere codice per visualizzare le immagini
Nel file MainPage.xaml.cs aggiungere il codice seguente alla 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;
});
}
Passaggio 5: Aggiungere codice per copiare le immagini
Nel file MainPage.xaml.cs aggiungere il codice seguente alla 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");
}
}
Passaggio 6: Compilare ed eseguire l'app
- Premere F5 per compilare e distribuire l'app (in modalità di debug).
- Per eseguire l'app, inserire una scheda di memoria della fotocamera o un altro dispositivo di archiviazione da una fotocamera nel PC. Selezionare quindi una delle opzioni dell'evento di contenuto specificate nel file package.appxmanifest dall'elenco AutoPlay delle opzioni. Questo codice di esempio visualizza o copia solo le immagini nella cartella DCIM di una scheda di memoria della fotocamera. Se la scheda di memoria della fotocamera archivia le immagini in una cartella AVCHD o PRIVATE\ACHD, sarà necessario aggiornare il codice di conseguenza.
Annotazioni
Se non si dispone di una scheda di memoria della fotocamera, è possibile usare un'unità flash se ha una cartella denominata DCIM nella radice e se la cartella DCIM ha una sottocartella che contiene immagini.
Iscriviti a un dispositivo AutoPlay
Puoi registrare le app come opzioni per eventi di AutoPlay del dispositivo. eventi del dispositivo AutoPlay vengono generati quando un dispositivo è connesso a un PC.
Qui mostriamo come identificare la tua app come opzione AutoPlay quando una fotocamera è connessa a un PC. L'app si registra come gestore per l'evento WPD\ImageSourceAutoPlay. Si tratta di un evento comune generato dal sistema WPD (Windows Portable Device) quando le fotocamere e altri dispositivi fotografici notificano che sono una FonteImmagine usando MTP. Per altre informazioni, vedi Dispositivi Portatili Windows.
Importante Le API Windows.Devices.Portable.StorageDevice fanno parte della famiglia di dispositivi desktop . Le app possono usare queste API solo nei dispositivi Windows 10 nella famiglia di dispositivi desktop, ad esempio PC.
Passaggio 1: Creare un altro nuovo progetto e aggiungere dichiarazioni AutoPlay
- Aprire Visual Studio e selezionare
Nuovo progetto dal menu file. Nella sezione Visual C# in Windows selezionare App vuota UWP (.NET Native). Assegnare all'app il nome AutoPlayDevice_Camera e fare clic su OK. - Aprire il file Package.appxmanifest e selezionare la scheda Capacità. Selezionare la capacità Archiviazione rimovibile. Ciò consente all'app di accedere ai dati della fotocamera come unità di archiviazione rimovibile.
- Nel file manifesto, selezionare la scheda Dichiarazioni. Nell'elenco a discesa Dichiarazioni disponibili, selezionare Dispositivo AutoPlay e fare clic su Aggiungi. Selezionare il nuovo elemento dispositivo AutoPlay
aggiunto all'elenco dichiarazioni supportate . - Una dichiarazione AutoPlay Device identifica l'app come opzione quando AutoPlay attiva un evento del dispositivo per i dispositivi noti. Nella sezione Azioni di Lancio inserire i valori nella tabella seguente per la prima azione di avvio.
- Nell'elenco a discesa dichiarazioni disponibili, selezionare associazioni di tipi di file e cliccare su Aggiungi. Nella dichiarazione di proprietà della nuova dichiarazione
associazioni di tipi di file impostare il campo nome visualizzato su Mostra immagini da fotocamera e il campo Nomesu camera_association1 . Nella sezione Tipi di File Supportati, fare clic su Aggiungi Nuovo (se necessario). Impostare il campo di tipo di file su .jpg. Nella sezione Tipi di file supportati, clicca nuovamente su Aggiungi nuovo. Impostare il campo tipo di file della nuova associazione di file su .png. Per gli eventi di contenuto, AutoPlay filtra tutti i tipi di file che non sono associati in modo esplicito all'app. - Salvare e chiudere il file di manifesto.
Impostazione | Valore |
---|---|
Verbo | spettacolo |
Nome azione visualizzato | Mostra immagini |
Evento di Contenuto | WPD\ImageSource |
L'impostazione Nome visualizzato azione identifica la stringa che AutoPlay mostra per l'app. L'impostazione verbo identifica un valore passato all'app per l'opzione selezionata. Puoi specificare più azioni di avvio per un evento AutoPlay e usare l'impostazione verbo per determinare quale opzione un utente ha selezionato per la tua app. È possibile sapere quale opzione l'utente ha selezionato controllando la proprietà verbo degli argomenti dell'evento di avvio passati alla tua app. È possibile usare qualsiasi valore per l'impostazione verbo, ad eccezione di aperto, riservato. Per un esempio di come utilizzare più verbi in un'unica app, vedere Registrazione contenuti AutoPlay.
Passaggio 2: Aggiungere informazioni di riferimento sull'assembly per le estensioni desktop
Le API necessarie per accedere all'archiviazione in un dispositivo portatile Windows, Windows.Devices.Portable.StorageDevice, fanno parte della famiglia di dispositivi desktop. Ciò significa che è necessario un assembly speciale per usare le API e queste chiamate funzioneranno solo su un dispositivo nella famiglia di dispositivi desktop (ad esempio un PC).
- In Esplora Soluzioni
, fare clic con il pulsante destro del mouse su Riferimenti e quindi Aggiungi riferimento... . - Espandi Windows universale e fai clic su Estensioni .
- Seleziona quindi Estensioni desktop di Windows per la UWP e cliccare su OK.
Passaggio 3: Aggiungere l'interfaccia utente XAML
Aprire il file MainPage.xaml e aggiungere il codice XAML seguente alla sezione predefinita <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>
Passaggio 4: Aggiungere il codice di attivazione
Il codice in questo passaggio fa riferimento alla fotocamera come StorageDevice passando l'ID delle informazioni della fotocamera del dispositivo al metodo FromId. L'ID delle informazioni sul dispositivo della fotocamera viene ottenuto effettuando innanzitutto il cast degli argomenti dell'evento come DeviceActivatedEventArgse successivamente ottenendo il valore dalla proprietà DeviceInformationId.
Aprire il file App.xaml.cs e aggiungere il codice seguente alla 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);
}
Annotazioni
Il metodo ShowImages
viene aggiunto nel passaggio seguente.
Passaggio 5: Aggiungere il codice per visualizzare le informazioni sul dispositivo
È possibile ottenere informazioni sulla fotocamera dalle proprietà della classe StorageDevice. Il codice in questo passaggio visualizza il nome del dispositivo e altre informazioni all'utente durante l'esecuzione dell'app. Il codice chiama quindi i metodi GetImageList e GetThumbnail, che verranno aggiunti nel passaggio successivo, per visualizzare le anteprime delle immagini archiviate nella fotocamera
Nel file MainPage.xaml.cs, aggiungere il codice seguente alla 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));
}
}
Annotazioni
I metodi GetImageList
e GetThumbnail
vengono aggiunti nel passaggio seguente.
Passaggio 6: Aggiungere codice per visualizzare le immagini
Il codice in questo passaggio visualizza le anteprime delle immagini archiviate nella fotocamera. Il codice effettua chiamate asincrone alla fotocamera per ottenere l'immagine di anteprima. Tuttavia, la chiamata asincrona successiva non viene eseguita fino al completamento della chiamata asincrona precedente. In questo modo si garantisce che venga effettuata una sola richiesta alla fotocamera alla volta.
Nel file MainPage.xaml.cs, aggiungere il codice seguente alla 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;
}
Passaggio 7: Compilare ed eseguire l'app
- Premere F5 per compilare e distribuire l'app (in modalità di debug).
- Per eseguire l'app, connettere una fotocamera al computer. Quindi selezionare l'app dall'elenco AutoPlay delle opzioni.
Annotazioni
Non tutte le fotocamere annunciano il WPD\ImageSource evento del dispositivo AutoPlay.
Configurare l'archiviazione rimovibile
È possibile identificare un dispositivo del volume, ad esempio una scheda di memoria o un'unità flash, come dispositivo AutoPlay quando esso è connesso a un PC. Ciò è particolarmente utile quando vuoi associare un'app specifica per AutoPlay da presentare all'utente per il dispositivo del volume.
Per identificare il tuo dispositivo del volume come dispositivo AutoPlay, segui questi passaggi.
Per identificare il dispositivo del volume come dispositivo
Passaggio 1: Creare un file autorun.inf
Nella directory principale del dispositivo di volume, aggiungi un file denominato autorun.inf. Aprire il file autorun.inf e aggiungere il testo seguente.
[AutoRun]
CustomEvent=AutoPlayCustomEventQuickstart
Passaggio 2: Creare un nuovo progetto e aggiungere dichiarazioni AutoPlay
Aprire Visual Studio e selezionare
Nuovo progetto dal menu file. Nella sezione Visual C# in Windows selezionare App vuota UWP (.NET Native). Denominare l'applicazione AutoPlayCustomEvent e fare clic su OK. Aprire il file Package.appxmanifest e selezionare la scheda Capacità. Selezionare la capacità Archiviazione rimovibile. In questo modo l'app può accedere ai file e alle cartelle nei dispositivi di archiviazione rimovibili.
Nel file manifesto selezionare la scheda Dichiarazioni. Nell'elenco a discesa Dichiarazioni disponibili selezionare AutoPlay Content e fare clic su Aggiungi. Selezionare il nuovo elemento contenuto AutoPlay aggiunto all'elenco dichiarazioni supportate.
Annotazioni
In alternativa, puoi anche scegliere di aggiungere una dichiarazione di dispositivo AutoPlay per il tuo evento AutoPlay personalizzato.
Nella sezione azioni di avvio per la dichiarazione di evento contenuto AutoPlay, immettere i valori nella tabella seguente per la prima azione di avvio.
Nell'elenco a discesa dichiarazioni disponibili, selezionare associazioni di tipi di file e cliccare su Aggiungi. Nella dichiarazione Proprietà della nuova
associazioni di tipi di file impostare il campo nome visualizzato su Mostra file ms e il campo Nomesu ms_association . Nella sezione Tipi di file supportati, fare clic su Aggiungi Nuovo. Impostare il campo tipo di file su .ms. Per gli eventi di contenuto, AutoPlay filtra tutti i tipi di file che non sono associati in modo esplicito all'app.Salvare e chiudere il file di manifesto.
Impostazione | Valore |
---|---|
Verbo | spettacolo |
Nome azione visualizzato | Mostra file |
Evento di Contenuto | AvvioRapidoEventoPersonalizzatoAutoPlay |
Il valore evento contenuto
Passaggio 3: Aggiungere l'interfaccia utente XAML
Aprire il file MainPage.xaml e aggiungere il codice XAML seguente alla sezione predefinita <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>
Passaggio 4: Aggiungere il codice di attivazione
Il codice in questo passaggio chiama un metodo per visualizzare le cartelle nella directory principale del tuo dispositivo di archiviazione. Per gli eventi di contenuto AutoPlay, AutoPlay passa la cartella radice del dispositivo di archiviazione negli argomenti di avvio passati all'applicazione durante l'evento OnFileActivated. È possibile recuperare questa cartella dal primo elemento della proprietà Files.
Aprire il file App.xaml.cs e aggiungere il codice seguente alla 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);
}
Annotazioni
Il metodo DisplayFiles
viene aggiunto nel passaggio seguente.
Passaggio 5: Aggiungere codice per visualizzare le cartelle
Nel file MainPage.xaml.cs aggiungere il codice seguente alla 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;
}
Passaggio 6: Compilare ed eseguire l'applicazione
- Premere F5 per compilare e distribuire l'app (in modalità di debug).
- Per eseguire l'app, inserire una scheda di memoria o un altro dispositivo di archiviazione nel PC. Selezionare quindi l'app dall'elenco delle opzioni del gestore AutoPlay.
Riferimento all'evento AutoPlay
Il sistema di AutoPlay consente alle app di registrarsi per un'ampia gamma di eventi di arrivo del dispositivo e del volume (disco). Per registrarsi per eventi di contenuto AutoPlay, è necessario abilitare la funzionalità di archiviazione rimovibile nel manifesto del pacchetto. Questa tabella mostra gli eventi per cui è possibile eseguire la registrazione e quando vengono generati.
Sceneggiatura | Evento | Descrizione |
---|---|---|
Uso di foto su una fotocamera | WPD\ImageSource | Generato per le fotocamere che sono identificate come Dispositivi Portatili Windows e che offrono la funzionalità ImageSource. |
Uso della musica su un lettore audio | WPD\AudioSource | Generato per i lettori multimediali identificati come dispositivi portatili Windows e che offrono la funzionalità AudioSource. |
Uso di video su una videocamera | WPD\VideoSource | Generato per le videocamere identificate come dispositivi portatili Windows che dispongono della funzionalità VideoSource. |
Accedere a un'unità flash connessa o a un disco rigido esterno | ConservazioneAll'Arrivo | Generato quando un dispositivo di archiviazione o un volume è connesso al PC. Se l'unità o il volume contiene una cartella DCIM, AVCHD o PRIVATE\ACHD nella radice del disco, viene attivato l'evento ShowPicturesOnArrival. |
Uso di foto da archiviazione di massa (legacy) | MostraImmaginiAll'arrivo | Generato quando un'unità o un volume contiene una cartella DCIM, AVCHD o PRIVATE\ACHD nella radice del disco. Se un utente ha abilitato Scegliere cosa fare con ogni tipo di supporto nel Pannello di controllo AutoPlay, AutoPlay esaminerà un volume connesso al PC per determinare il tipo di contenuto sul disco. Quando vengono trovate immagini, viene attivato ShowPicturesOnArrival. |
Ricezione di foto con la condivisione di prossimità (tocco e invio) | MostraImmaginiAll'arrivo | Quando gli utenti inviano contenuti con prossimità (tocco e invio), AutoPlay esaminerà i file condivisi per determinare il tipo di contenuto. Se vengono trovate immagini, viene attivato ShowPicturesOnArrival. |
Uso della musica dall'archiviazione di massa (legacy) | PlayMusicFilesOnArrival | Se un utente ha abilitato Scegli cosa fare per ciascun tipo di supporto nel Pannello di controllo di AutoPlay, AutoPlay esaminerà un'unità collegata al PC per determinare il tipo di contenuto sul disco. Quando vengono trovati file musicali, PlayMusicFilesOnArrival viene attivato. |
Ricevere musica tramite la Condivisione di Prossimità (tocca e invia) | PlayMusicFilesOnArrival | Quando gli utenti inviano contenuti con prossimità (tocco e invio), AutoPlay esaminerà i file condivisi per determinare il tipo di contenuto. Se vengono trovati file musicali, viene attivato PlayMusicFilesOnArrival. |
Uso di video dalla memoria di massa (legacy) | RiproduciFileVideoAllArrivo | Se un utente ha abilitato Scegli cosa fare per ciascun tipo di supporto nel Pannello di controllo di AutoPlay, AutoPlay esaminerà un'unità collegata al PC per determinare il tipo di contenuto sul disco. Quando i file video vengono trovati, si attiva PlayVideoFilesOnArrival. |
Ricevere video con condivisione di prossimità (tocca e invia) | RiproduciFileVideoAllArrivo | Quando gli utenti inviano contenuti con prossimità (tocco e invio), AutoPlay esaminerà i file condivisi per determinare il tipo di contenuto. Se vengono trovati file video, PlayVideoFilesOnArrival viene generato. |
Gestione di insiemi misti di file da un dispositivo connesso | MixedContentOnArrival | Se un utente ha abilitato Scegli cosa fare per ciascun tipo di supporto nel Pannello di controllo di AutoPlay, AutoPlay esaminerà un'unità collegata al PC per determinare il tipo di contenuto sul disco. Se non si trova alcun tipo di contenuto specifico, ad esempio immagini, viene sollevato MixedContentOnArrival. |
Gestione di set misti di file con la Condivisione in Prossimità (tocca e invia) | MixedContentOnArrival | Quando gli utenti inviano contenuti con prossimità (tocco e invio), AutoPlay esaminerà i file condivisi per determinare il tipo di contenuto. Se non si trova alcun tipo di contenuto specifico, ad esempio immagini, viene sollevato MixedContentOnArrival. |
Gestire video da supporti ottici |
PlayMOVIEOnArrival Play EseguiRayOnArrival PlayVideoCDMovieOnArrival RiproduciFilmatoSuperVideoCDAll'Arrivo |
Quando un disco viene inserito nell'unità ottica, AutoPlay esamina i file per determinare il tipo di contenuto. Quando vengono trovati file video, viene generato l'evento corrispondente al tipo di disco ottico. |
Gestire musica da supporti ottici |
RiproduciCDAudioAllArrivo RiproduciAudioDVDAll'Arrivo |
Quando un disco viene inserito nell'unità ottica, AutoPlay esamina i file per determinare il tipo di contenuto. Quando vengono trovati file musicali, viene generato l'evento corrispondente al tipo di disco ottico. |
Riprodurre dischi avanzati |
PlayEnhancedCDOnArrival PlayEnhanced AVANTIOnArrival |
Quando un disco viene inserito nell'unità ottica, AutoPlay esamina i file per determinare il tipo di contenuto. Quando viene trovato un disco migliorato, viene generato l'evento corrispondente al tipo di disco ottico. |
Gestire dischi ottici scrivibili |
HandleCDBurningOnArrival HandleMasterizzazioneDVDOnArrival HandleBDBurningOnArrival |
Quando un disco viene inserito nell'unità ottica, AutoPlay esamina i file per determinare il tipo di contenuto. Quando viene trovato un disco scrivibile, viene generato l'evento corrispondente al tipo di disco ottico. |
Gestisci qualsiasi altra connessione di dispositivo o volume | UnknownContentOnArrival | Generato per tutti gli eventi quando viene rilevato un contenuto che non corrisponde a nessuno degli eventi di contenuto AutoPlay. L'uso di questo evento non è consigliato. È consigliabile registrare l'applicazione solo per gli eventi AutoPlay specifici che può gestire. |
Puoi specificare che AutoPlay solleva un evento di contenuto AutoPlay personalizzato utilizzando la voce CustomEvent nel file autorun.inf per un volume. Per ulteriori informazioni, vedi Voci autorun.inf.
Puoi registrare la tua app come gestore di eventi di contenuti AutoPlay o dispositivi AutoPlay aggiungendo un'estensione al file package.appxmanifest della tua app. Se si usa Visual Studio, è possibile aggiungere una dichiarazione di contenuto AutoPlay
<Applications>
<Application Id="AutoPlayHandlerSample.App">
<Extensions>
<Extension Category="windows.autoPlayContent">
<AutoPlayContent>
<LaunchAction Verb="show" ActionDisplayName="Show Pictures"
ContentEvent="ShowPicturesOnArrival" />
</AutoPlayContent>
</Extension>
</Extensions>
</Application>
</Applications>