これから始めるWindows Phone プログラミング(基本編) 9

LaunchersとChoosersを使ってみる

今回は、Microsoft.Phone.Tasks名前空間に属する、ランチャーとチューザーAPIを使ったサンプルを紹介します。この名前空間を使用してディレクティブをPhoneApplicationPageクラスファイル(Windows Phone Silverlightプロジェクトのためのクラス)

PROJECT KySS

2011年8月1日 20:00

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

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

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

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

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

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

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

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

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

ランチャーの種類説明
EmailComposeTaskアプリケーションからメールを送信します。
MarketplaceDetailsTask製品の詳細ページを表示したWindows Phone MarketPlaceクライアントアプリケーションを起動します。
MarketPlaceHubTaskWindows Phone MarketPlaceのクライアントアプリケーションを起動します。
MarketPlaceReviewTaskアプリケーションのレビューページを表示するWindows Phone MarketPlaceクライアントアプリケーションを起動します。
MarketPlaceSearchTask検索結果を表示するWindows Phone MarketPlaceクライアントアプリケーションを起動します。
MediaPlayerLauncherメディアプレイヤーを起動します。
PhoneCallTask電話をかけます。
SearchTask検索を起動します。
SmsComposeTaskSMSを起動します。
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本の指で拡大縮小が可能(右図)(クリックで拡大)

この記事をシェアしてください

人気記事トップ10

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

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