バックグラウンドによるファイル転送(前編)
このサンプルは、Windows Phone Developer Tools 7.1から追加された、BackgroundTransferServiceを使用して、アプリケーションを開始し、バックグラウンドファイル転送を監視するサンプルです。BackgroundTransferServiceクラスは、バックグラウンド転送要求の管理を可能にするクラスです。
今回も解説が長くなるため前編と後編の2回に分けて解説いたします。前編では、バックグラウンドファイル転送の状況を表示する、MainPage.xaml.vbの処理をメインに解説します。
このプログラムで実装する機能の動作を、下記に解説しておきます。
実行すると、「登録なし」の画面が表示されます。画面下にある+のアイコンをクリックすると、転送するファイルの一覧画面が表示されます。右横に表示される+の「追加」アイコンをクリックし、その後エミュレーターのBackアイコン(←)をクリックします(図1)。
するとファイルの転送画面が表示され、「受信Byte数」の値が変化していきます。転送の途中で画像が表示されます。既に転送済みのファイルは追加できませんが、それ以外のファイルは何個でも転送が可能です(図2)。ただし、wmvファイルだけは、同じ画面上で1個しか再生できません。また、ほかの画像ファイルと同じ画面に表示することもできませんので、注意してください(図3)。
[削除]ボタンで任意のファイルを削除できます。エミュレーターの下方にある×のアイコンをクリックすると、全部のファイルが一括で削除されます(図4)。受信の途中で[WebBrowser]ボタンをクリックして、任意のサイトを表示しても、バックグラウンドでファイルの転送は実行されます(図5)。
※注意:wmvファイルを選択する場合は、[削除]ボタンではなく、×のアイコンで削除を実行してから、wmvファイルを選択してください。
図1:追加アイコンをクリックして(左図)、ファイル選択画面に入る。転送するファイルを追加アイコンで選択し、Backアイコン(←)をクリックする(右図)(クリックで拡大) |
図2:ファイルの転送画面が表示され、「受信Byte数」の値が変化する(左図)。転送の途中で画像が表示される(中央図)。既に転送済みのファイルは追加できないが、それ以外のファイルは何個でも追加転送が可能(右図)(クリックで拡大) |
図3:wmvファイルは、同じ画面上で1個しか再生できない。ほかの画像ファイルと同じ画面に表示することはできない(クリックで拡大) |
図4:[削除]ボタンで任意のファイルを削除した(中央図)。エミュレーターの下方にある×のアイコンをクリックすると、全部のファイルが一括で削除される(右図)(クリックで拡大) |
図5:転送の途中で[WebBrowser]ボタンをクリックして、任意のサイトを表示しても、バックグラウンドでファイルの転送は実行されている(クリックで拡大) |
サンプル一式は、会員限定特典としてダウンロードできます。記事末尾をご確認ください。
※サンプル実行でエラーが発生した場合は、「ソリューションのビルド」を実行後、再度、デバッグ開始を行ってください
プロジェクトの作成
VS 2010のメニューから[ファイル(F)/新規作成(N)/プロジェクト(P)]を選択します。次に、「Windows Phone アプリケーション」を選択して、「名前(N)」に任意のプロジェクト名を指定します。ここでは「WP71_BackgroundTransfer」という名前を付けています。Windows Phoneのバージョンは7.1を選択します。
ソリューションエクスプローラー内にImageというフォルダを作成し、PNG画像を追加します。この画像はWindows 7 Professionalでは、下記のディレクトリに存在するPNG画像です。
C:\Program Files\Microsoft SDKs\Windows Phone\v7.1\Icons\dark
この中の、appbar.add.rest.pngとappbar.basecircle.rest.pngとappbar.cancel.rest.pngを選択して追加します。appbar.add.rest.pngをadd.pngに、appbar.basecircle.rest.png をen.pngに、appbar.cancel.rest.pngをremove.pngに名前を変更しています。これらの追加したImageフォルダ内の.pngファイルのプロパティから、「ビルドアクション」に「コンテンツ」と指定しておきます。
デフォルトでは「Resource」になっています。「Resource」のままでは、画像が表示されませんので、注意してください。またリスト1のXML文書ファイル(absoluteUri.xml)も追加しておきます。
これらのファイルは、ダウンロードされたサンプルファイルには追加済みです。
リスト1 XML文書ファイル(absoluteUri.xml)
最後の1個のみWMVファイルを指定しています。 <?xml version="1.0" encoding="utf-8" ?> <Image> <ImageName>http://2008r2.projectkyss.net/Image/Image1.png</ImageName> <ImageName>http://2008r2.projectkyss.net/Image/Image2.png</ImageName> <ImageName>http://2008r2.projectkyss.net/Image/Image3.png</ImageName> <ImageName>http://2008r2.projectkyss.net/Image/Image4.png</ImageName> <ImageName>http://2008r2.projectkyss.net/Image/Image5.png</ImageName> <ImageName>http://sei.seindesign.net/sampledata/WP7_VegetarianCooking.wmv</ImageName> </Image>
「バックグラウンドによるファイル転送(前編)」サンプルプログラム
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- バックグラウンドによるファイル転送(後編)
- カメラで写した写真を分離ストレージに保存し、写真の一覧を表示する
- 読み込んだ画像に装飾を施し、PictureHUBに保存する
- 撮影した写真を分離ストレージとPicturesHUBに保存する
- 「住所の位置をBing Mapsに表示する」と「位置に画像付きピンを表示する」のサンプル
- モーションセンサーとShareStatusTask、MediaPlayerLauncherを使う
- タッチパネルでドラッグ&ドロップを使う汎用的なサンプル
- 写真をハート型に切り抜いて撮影するサンプル
- メッセージボックスの処理を分岐させる+2つのサンプル
- ContextMenuコントロールを使う、加速度センサー、GPSでの位置情報取得