Windows 8 Store apps Advent Calendar7日目という事で
今年も年末になりましたね。がりっちです。
本年度は勉強会を主催させていただいたり、MSPフェローシップになれたり、東京でいろいろしたり楽しかった一年でした。
景気よく年末を迎えるために、アドベントカレンダーで一発よい記事を書こうとしたのですが...
なんと学校のテストが暴風警報により延期され、まさかのテスト期間中にアドベントカレンダーを書くことになりました。
なのでかなり雑なのをお許し下さい。
今回は"俺のアプリはUSBを挿すと動く"ということでUSBをさした時に自動再生をするアプリをしようかなと
とりあえずまずはマニフェストファイルに
宣言→自動再生コンテンツに以下のようにします。
次にファイルの関連付けを以下のようにします
最後に機能のタブでリムーバル記憶領域にチェックを入れます
そして、App.xaml.csに以下を追加します
protected override void OnFileActivated(FileActivatedEventArgs args)
{
if (args.Verb == "show")
{
Frame rootFrame = (Frame)Window.Current.Content;
var mainPage = (MainPage)rootFrame.Content;
// Call DisplayImages with root folder from camera storage.
mainPage.FileLaunch((Windows.Storage.StorageFolder)args.Files[0]);
}
base.OnFileActivated(args);
}
Main.xaml.csには以下を
public async void FileLaunch(StorageFolder file)
{
MessageDialog dialog = new MessageDialog(file.DisplayName);
await dialog.ShowAsync();
}
これでアプリを実行して、ルートフォルダにDCIMフォルダのあるUSBを指すと....
なんとUSBの名前が表示されます。
ごめんなさい。これだけです。
【今回わかったこと】
リムーバルデバイス自動再生はApp.xaml.csのonFileActivatedをオーバーライドする
その時マニフェストに書いてある動詞で条件分けをする
StorageFolderが取得できる。
USBをさして中の画像一覧列挙とかもできそうで面白そうですね!!
明日はきっと素晴らしい記事を書いていただけると思います
雑でごめんなさい
さてテスト勉強をしないと...