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

このサンプルは、Windows Phone Developer Tools 7.1から追加された、BackgroundTransferServiceを使用して、アプリケーションを開始し、バックグラウンドファイル転送を監視するサンプルです。BackgroundTransferServiceクラスは、

PROJECT KySS

2011年9月9日 20:00

このサンプルは、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>

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30