LaunchersとChoosersを使ってみる
今回は、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)。
図1:エミュレーターの起動画面(左図)。[メールを送る]をクリックするとAccountエラーが表示される(中央図)。[MediaPlayer]をクリックすると動画と音声が再生される(右図)(クリックで拡大) |
[電話をかける]の実行図
図1のメニューから[電話をかける](PhoneCallTask)をクリックすると、「電話先選択」画面が表示されます。任意の電話先を選択すると、電話をかける確認画面が表示されます。[Call]ボタンをクリックすると呼び出しが開始されます。エミュレーターでは実際に電話をかけることはできません(図2)。
図2:[電話をかける]をクリックすると「電話先選択」画面が表示され(左図)、任意の電話先を選択すると、電話をかける確認画面が表示される(中央図)。[Call]ボタンをクリックすると呼び出しが始まる(右図)(クリックで拡大) |
[メールアドレスの追加]の実行図
図1のメニューから[メールアドレスの追加](SaveEmailAddressTask)をクリックすると、既に登録されているメールアドレスのコンタクトリストが表示されます。○の中の+アイコンをクリックします。「EDIT EMAIL」画面が表示されますので、Email address入力欄に、エミュレーター上に表示されている入力パネルから、info@sample.comと入力し、保存アイコンをクリックします。NEW CONTACT画面に、今入力したメールアドレスが追加されています(図3)。このエミュレーター上では、実際に保存されているわけではありませんので、エミュレーターを再起動した場合は、データは消えてしまいます。
図3:[メールアドレスの追加]をクリックし、表示される画面から○の中の+アイコンをクリックする(左図)。メールアドレスを入力し保存アイコンをクリックする(中央図)。入力したメールアドレスが追加されている(右図)(クリックで拡大) |
[電話番号追加]の実行図
次に、図1のメニューから[電話番号の追加](SavePhoneNumberTask)をクリックします。表示される「CHOOSE A CONTACT」画面から、○の中の+アイコンをクリックします。「EDIT PHONE NUMBER」画面になりますので、Phone numberの入力ボックスに、入力パネルから、0891234567と入力し、保存アイコンをクリックします。「NEW CONTACT」画面に(089)123-4567と表示されます(図4)。このデータもエミュレーターを再起動すると消えてしまいます。
図4:[電話番号の追加]をクリックし、表示される画面から○の中の+アイコンをクリックする(左図)。電話番号を入力し保存アイコンをクリックする(中央図)。入力した電話番号が追加されている(右図)(クリックで拡大) |
[Web検索]の実行図
図1のメニューから[Web検索](SearchTask)をクリックします。文字入力を日本語入力に設定します。
表示される画面から[許可]ボタンをクリックします。検索入力ボックスが表示されますので、エミュレーターの入力パネルから「薬師寺」と入力し、入力パネルの→をクリックします。すると「薬師寺」に関する検索結果が表示されます(図5)。任意のページをクリックすると、ブラウザ内にページが表示されます。タッチスクリーンご使用の場合は、2本の指で拡大縮小が可能です(図6)。
図5:[Web検索]をクリックし、表示される画面から[許可]をクリックする(左図)。検索入力ボックスに「薬師寺」と入力した(中央図)。検索結果が表示される(右図)(クリックで拡大) |
図6:図5の検索結果から任意のページをクリックする(左図)と、ブラウザ内に該当ページが表示された(中央図)。2本の指で拡大縮小が可能(右図)(クリックで拡大) |
「LaunchersとChoosersを使ってみる」サンプルプログラム