Windows Phoneアプリケーション開発入門

第36回 Mangoで追加されたカメラ機能を使ってみよう!(2)

この記事を読むのに必要な時間:およそ 6 分

Isolated Storage Explorer Toolの使い方

Windows Phoneの分離ストレージはセキュアな反面,格納したデータをPC側のエクスプローラー等のファイルシステムからアクセスすることができず,開発効率が落ちてしまう原因となっていました。

Windows Phone SDK 7.1から分離ストレージに対してアクセスする方法として「Isolated Storage Explorer Tool」というツールが追加されました。コマンドラインベースであまり使いやすいとは言えませんが,今まで分離ストレージにアクセスできなかったことを考えると,格段にデバッグ効率が上がったと言えます。

このツールが追加されたのはWindows Phone SDK 7.1からですが,対象となるアプリケーションはWindows Phone OS 7.0向けのものでも問題ありません。

Isolated Storage Explorer Toolでできることは以下の3つです。

  • Windows Phone内の分離ストレージからPCへデータを転送
  • PCからデータをWindows Phone内の分離ストレージへ転送
  • Windows Phone内の分離ストレージのディレクトリの一覧表示

Isolated Storage Explorer Toolのコマンドのパラメータ

開発環境であるWindowsが32bit版か64bit版かで,インストールされているディレクトリが異なります。自分の環境に合ったものを選択してください。

Windowsが32bit版の場合
"C:\Program Files\Microsoft SDKs\Windows Phone\v7.1\Tools\IsolatedStorageExplorerTool\ISETool.exe"
Windowsが64bit版の場合
"C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v7.1\Tools\IsolatedStorageExplorerTool\ISETool.exe"

ISETool.exeに指定する書式は以下の通りです。

ISETool.exe <ts|rs|dir[:device-folder]> <xd|de> <Product GUID> [<desktop-path>]

コマンドの引数を前から順に説明していきます。

パラメータ 説明
ts (Take snapshot)
Windows Phone内の分離ストレージからPCへデータを転送
rs (Restore snapshot)
PCからデータをWindows Phone内の分離ストレージへ転送
dir Windows Phone内の分離ストレージのディレクトリの一覧表示
特定のディレクトリの一覧をみたい場合は「dir:"/Shared"」のように指定する。ディレクトリを指定しなかった場合はルートディレクトリの一覧が表示される。
xd Windows Phoneエミュレータを対象とする
de Windows Phone端末(実機)を対象とする
Product GUID データをダンプしたい対象となるアプリのWPAppManifest.xmlに書かれているProduct GUID
desktop-path PC側の転送先または転送元パス

これらのパラメータを使いわけることで,最初に紹介した3つの機能別にISETool.exeを使い分けることができます。Visual Studioのソリューションエクスプローラーから,テストを行いたいプロジェクトのPropertiesディレクトリにあるWMAppManifest.xmlを開いてください。

画像

App要素にProductID属性がありますのでメモしておいてください。例として使用しているCameraPreviewTestのプロダクトIDは「d529745c-470a-4fc0-aab0-50b76d24bfe3」で,このIDを使用して,分離ストレージからのデータの取り込みやデータの格納を行います。

画像

Windows Phone内の分離ストレージからPCへデータを転送

プロダクトIDが「d529745c-470a-4fc0-aab0-50b76d24bfe3」のアプリケーションの分離ストレージの内容を,Windows Phone端末(実機)からPCの「c:\test」ディレクトリへ転送しています。

> ISETool.exe ts de d529745c-470a-4fc0-aab0-50b76d24bfe3 c:\test

コマンドを実行し,問題なく終了するとDownload Successfulと表示されます。特に進捗が表示されることも無いので,サイズの大きなファイルを転送している場合は,コマンドプロント上でのフィードバックがありませんので注意してください。

> ISETool.exe ts de d529745c-470a-4fc0-aab0-50b76d24bfe3 c:\test
Download Started ... Into Folder: c:\test
Download Successful Into Folder: c:\test

PCからデータをWindows Phone内の分離ストレージへ転送

プロダクトIDが「d529745c-470a-4fc0-aab0-50b76d24bfe3」のアプリケーションの分離ストレージに対して,PCの「c:\test」ディレクトリのデータをWindows Phone端末(実機)へ転送しています。

> ISETool.exe ts de d529745c-470a-4fc0-aab0-50b76d24bfe3 c:\test

Windows Phone内の分離ストレージのディレクトリの一覧表示

プロダクトIDが「d529745c-470a-4fc0-aab0-50b76d24bfe3」のアプリケーションの分離ストレージのルートディレクトリ一覧を参照します。

> ISETool.exe ts dir d529745c-470a-4fc0-aab0-50b76d24bfe3

dirに続いて「:device-folderを指定すると特定のディレクトリ一覧を参照することが可能です。

以下の例では,プロダクトIDが「d529745c-470a-4fc0-aab0-50b76d24bfe3」のアプリケーションの分離ストレージのルート直下のSharedディレクトリ一覧を参照しています。

> ISETool.exe dir:"/Shared" de d529745c-470a-4fc0-aab0-50b76d24bfe3
<DIR>          Transfers
<DIR>          ShellContent
<DIR>          Media

撮影した画像がきちんと撮れているかを確認するために分離ストレージに保存されたデータを確認してみましょう。Isolated Storage Explorer Toolを使って,分離ストレージに保存したJPEGデータをPCへ転送してみました。

画像

問題なくPCへ転送が行われ,エクスプローラーで表示できていることを確認できました。

さいごに

プレビュー表示に使用する画像のことを,プレビューフレームやプレビューバッファーと呼びます。

次回は,プレビューフレームを取得し,カメラからインプットを表示させるだけではなく,画像を加工した上でプレビュー表示を行うTipsと,バーコードライブラリを使用してバーコードの読み取りを行う方法をご紹介したいと思います。

今回は以上で終わりです。ありがとうございました。

著者プロフィール

和田健司(わだけんじ)

1982年10月12日生まれ。大阪で働くプログラマ。Microsoft MVP for Device Application Development(Jul 2010 - Jun 2011)。Windows Mobileに傾倒し今に至る。Windows Mobile向けのTipsを書いています。iPhoneアプリ開発を始めました。嫌いな食べ物はカレー。

URL: http://ch3cooh.jp/
Blog: http://d.hatena.ne.jp/ch3cooh393/