PR

バックグラウンドによるファイル転送(前編)

2011年9月9日(金)
PROJECT KySS

このサンプルは、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会員限定特典
  • 「バックグラウンドによるファイル転送(前編)」サンプルプログラム

四国のSOHO。薬師寺国安(VBプログラマ)と、薬師寺聖(デザイナ、エンジニア)によるコラボレーション・ユニット。1997年6月、Dynamic HTMLとDirectAnimationの普及を目的として結成。共同開発やユニット名義での執筆活動を行う。XMLおよび.NETに関する著書や連載多数。最新刊は「Silverlight実践プログラミング」両名とも、Microsoft MVP for Development Platforms - Client App Dev (Oct 2003-Sep 2012)。http://www.PROJECTKySS.NET/

連載バックナンバー

Think IT会員サービス無料登録受付中

Think ITでは、より付加価値の高いコンテンツを会員サービスとして提供しています。会員登録を済ませてThink ITのWebサイトにログインすることでさまざまな限定特典を入手できるようになります。

Think IT会員サービスの概要とメリットをチェック

他にもこの記事が読まれています