LaunchersとChoosersを使ってみる

2011年8月1日(月)
PROJECT KySS

今回は、Microsoft.Phone.Tasks名前空間に属する、ランチャーとチューザーAPIを使ったサンプルを紹介します。

この名前空間を使用してディレクティブをPhoneApplicationPageクラスファイル(Windows Phone Silverlightプロジェクトのためのクラス)に追加して機能させます。

Launcher(ランチャー)とは、ユーザーがタスクを完了した場合、データは呼び出し元のアプリケーションに返されない、組み込みアプリケーションの1つを起動するAPIです。

ランチャーはアプリケーションを起動しても、戻り値は取得しません。

Chooser(チューザー)とは、ユーザーがタスクを完了した場合、呼び出し元のアプリケーションに、いくつかの種類のデータを返す、組み込みアプリケーションの1つを起動するAPIです。

チューザーでは、ユーザーがタスクを完了した場合、その結果には、データを含むIOストリームが含まれているかどうかを示す値が含まれています。

ランチャーとチューザーのAPIは、現在実行中のアプリケーションを置き換える個別の組み込みアプリケーションを呼び出します。

サポートされているランチャーとチューザーは表1です。

表1 サポートされているランチャー

ランチャーの種類 説明
EmailComposeTask アプリケーションからメールを送信します。
MarketplaceDetailsTask 製品の詳細ページを表示したWindows Phone MarketPlaceクライアントアプリケーションを起動します。
MarketPlaceHubTask Windows Phone MarketPlaceのクライアントアプリケーションを起動します。
MarketPlaceReviewTask アプリケーションのレビューページを表示するWindows Phone MarketPlaceクライアントアプリケーションを起動します。
MarketPlaceSearchTask 検索結果を表示するWindows Phone MarketPlaceクライアントアプリケーションを起動します。
MediaPlayerLauncher メディアプレイヤーを起動します。
PhoneCallTask 電話をかけます。
SearchTask 検索を起動します。
SmsComposeTask SMSを起動します。
WebBrowserTask ウェブブラウザを起動します。

サポートされているチューザー

チューザーの種類 説明
EmailAddressChooserTask コンタクトリストからメールアドレスを選択します。
PhoneNumberChooserTask コンタクトリストから電話番号を選択します。
PhotoChooserTask 写真を選択するアプリケーションを起動します。
CaptureCameraTask カメラを起動します。
SaveEmailAddressTask メールアドレスをコンタクトリストに追加します。
SavePhoneNumberTask 電話番号をコンタクトリストに追加します。

詳細については、下記URLを参照してください(英語)。
→参照:Launchers and Choosers Overview for Windows Phone

これらのランチャーとチューザーの種類からいくつかを抜き出して作った例が図1~になります。MarketPlaceとSmsComposeTaskランチャー、PhotoChooserTaskチューザーを使ったサンプルは省略しています。これらのサンプルについては、上記URLを参考にしてください。

※注意:Windows Phone Developer Tools 7.1 Betaの環境をお使いの場合は、このサ ンプルは、VS2010メニューの「デバッグ(G)/デバッグなしで開始(H)」から実行してください。「デバッグ開始(S)」では正常に動作しません。WPDT7.1の環境がBeta版のせいかどうかは現時点では不明です。
また、Windows Phone SDK 7.1 Beta2の環境をお使いの場合は、「MediaPlayerLauncher」のサンプルのみ、「デバッグなしで開始(H)」からお試しください。Windows Phone SDK7.1 Beta2の環境でも、「MediaPlayerLauncher」は、「デバッグ開始(S)」では正常に動作しませんので、注意してください。

[メールを送る]と[MediaPlayer] の実行図

実行するとメニュー一覧のボタンが表示されます。[メールを送る](EmailCommpseTask)をクリックするとAccountエラーが表示されます。実機ではAccountを設定すればメールが送信されるはず?です。[MediaPlayer](MediaPlayerLauncher)をクリックするとWMVファイルが再生されます。「デバッグ開始(S)」では、音声は聞こえますが、動画は再生されませんので注意してください(図1)。

3

図1:エミュレーターの起動画面(左図)。[メールを送る]をクリックするとAccountエラーが表示される(中央図)。[MediaPlayer]をクリックすると動画と音声が再生される(右図)(クリックで拡大)

[電話をかける]の実行図

図1のメニューから[電話をかける](PhoneCallTask)をクリックすると、「電話先選択」画面が表示されます。任意の電話先を選択すると、電話をかける確認画面が表示されます。[Call]ボタンをクリックすると呼び出しが開始されます。エミュレーターでは実際に電話をかけることはできません(図2)。

3

図2:[電話をかける]をクリックすると「電話先選択」画面が表示され(左図)、任意の電話先を選択すると、電話をかける確認画面が表示される(中央図)。[Call]ボタンをクリックすると呼び出しが始まる(右図)(クリックで拡大)

[メールアドレスの追加]の実行図

図1のメニューから[メールアドレスの追加](SaveEmailAddressTask)をクリックすると、既に登録されているメールアドレスのコンタクトリストが表示されます。○の中の+アイコンをクリックします。「EDIT EMAIL」画面が表示されますので、Email address入力欄に、エミュレーター上に表示されている入力パネルから、info@sample.comと入力し、保存アイコンをクリックします。NEW CONTACT画面に、今入力したメールアドレスが追加されています(図3)。このエミュレーター上では、実際に保存されているわけではありませんので、エミュレーターを再起動した場合は、データは消えてしまいます。

3

図3:[メールアドレスの追加]をクリックし、表示される画面から○の中の+アイコンをクリックする(左図)。メールアドレスを入力し保存アイコンをクリックする(中央図)。入力したメールアドレスが追加されている(右図)(クリックで拡大)

[電話番号追加]の実行図

次に、図1のメニューから[電話番号の追加](SavePhoneNumberTask)をクリックします。表示される「CHOOSE A CONTACT」画面から、○の中の+アイコンをクリックします。「EDIT PHONE NUMBER」画面になりますので、Phone numberの入力ボックスに、入力パネルから、0891234567と入力し、保存アイコンをクリックします。「NEW CONTACT」画面に(089)123-4567と表示されます(図4)。このデータもエミュレーターを再起動すると消えてしまいます。

3

図4:[電話番号の追加]をクリックし、表示される画面から○の中の+アイコンをクリックする(左図)。電話番号を入力し保存アイコンをクリックする(中央図)。入力した電話番号が追加されている(右図)(クリックで拡大)

[Web検索]の実行図

図1のメニューから[Web検索](SearchTask)をクリックします。文字入力を日本語入力に設定します。

表示される画面から[許可]ボタンをクリックします。検索入力ボックスが表示されますので、エミュレーターの入力パネルから「薬師寺」と入力し、入力パネルの→をクリックします。すると「薬師寺」に関する検索結果が表示されます(図5)。任意のページをクリックすると、ブラウザ内にページが表示されます。タッチスクリーンご使用の場合は、2本の指で拡大縮小が可能です(図6)。

3

図5:[Web検索]をクリックし、表示される画面から[許可]をクリックする(左図)。検索入力ボックスに「薬師寺」と入力した(中央図)。検索結果が表示される(右図)(クリックで拡大)

3

図6:図5の検索結果から任意のページをクリックする(左図)と、ブラウザ内に該当ページが表示された(中央図)。2本の指で拡大縮小が可能(右図)(クリックで拡大)
  • 「LaunchersとChoosersを使ってみる」サンプルプログラム

四国の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 Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

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