読者です 読者をやめる 読者になる 読者になる

酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

Windows Phoneで使えるランチャー(LauncherとChooser)の一覧をまとめてみました

Windows Phone

Windows Phone Advent Calendar "ひとり" 2011」第22日目です。 (遅延実行中です)

Windows Phone プラットフォームとして一貫したユーザーエクスペリエンスを提供する為に、Windows Phone端末内のデータの取得および設定に関しては、Launcher(ランチャー)を使用する事が推奨されています。

今日は、過去に書いたランチャーで出来ることをまとめてみました。

SearchTaskを使ってウェブ検索をおこなう

今まで紹介出来ていなかったランチャーに関しては下記に追加しています。

SearchTaskは、ウェブ検索を行うランチャーです。
SearchTaskクラスのShowメソッドを実行すると、bingアプリを起動し検索結果を表示します。

f:id:ch3cooh393:20160115150355p:plain

検索を行うにはSearchQueryプロパティに検索キーワードを入力しておく必要があります。SearchQueryプロパティを入力せずにShowメソッドを実行すると、検索結果にはニュースが表示されました。

using System;
using System.Windows;
using Microsoft.Phone.Controls;
using Microsoft.Phone.Tasks;

namespace SearchTaskTest {
    public partial class MainPage : PhoneApplicationPage {
        // コンストラクター
        public MainPage() {
            InitializeComponent();
        }

        private void button1_Click(object sender, RoutedEventArgs e) {
            var task = new SearchTask();
            try {
                task.SearchQuery = "酢ろぐ";
                task.Show();
            } catch (InvalidOperationException ex) {
                MessageBox.Show(ex.Message);
            }
        }
    }
}

ConnectionSettingsTaskを使ってネットワークの接続設定をおこなう

ConnectionSettingsTaskは、ネットワークの接続設定を行うランチャーです。
ConnectionSettingsTaskクラスのShowメソッドを実行すると、ConnectionSettingsTypeプロパティの設定値に応じて、それぞれ設定アプリでのネットワーク接続設定ダイアログを表示します。

f:id:ch3cooh393:20160115150514p:plain

ConnectionSettingsTypeプロパティに設定可能な値を列挙してみました。

設定値 説明
WiFi Wi-Fi 設定
Bluetooth Bluetooth 設定
Cellular 携帯ネットワーク設定
AirplaneMode フライト モード設定

ConnectionSettingsTypeプロパティにConnectionSettingsType.WiFiを設定したのちに、Showメソッドを実行しています。

using System;
using System.Windows;
using Microsoft.Phone.Controls;
using Microsoft.Phone.Tasks;

namespace ConnectionSettingsTaskTest {
    public partial class MainPage : PhoneApplicationPage {
        // コンストラクター
        public MainPage() {
            InitializeComponent();
        }

        private void button1_Click(object sender, RoutedEventArgs e) {
            var task = new ConnectionSettingsTask();
            try {
                // Wi-Fi設定ダイアログを表示する
                task.ConnectionSettingsType = ConnectionSettingsType.WiFi;
                task.Show();
            } catch (InvalidOperationException ex) {
                MessageBox.Show(ex.Message);
            }
        }
    }
}

EmailComposeTaskを使ってEメールを送信する

EmailComposeTaskは、Eメールを送信するランチャーです。
EmailComposeTaskクラスのShowメソッドを実行すると、メールアプリを起動しメール送信画面を表示します。

ただし、Windows Phone EmulatorでEmailComposeTaskを実行すると例外が発生する可能性があります。テストは実機上で行う必要があります。

ToプロパティやSubjectプロパティにテキストを設定しておくと、あらかじめ起動されるメール送信画面に情報が入力された状態で表示する事が出来ます。

f:id:ch3cooh393:20160115150428p:plain

using System;
using System.Windows;
using Microsoft.Phone.Controls;
using Microsoft.Phone.Tasks;

namespace EmailComposeTaskTest {
    public partial class MainPage : PhoneApplicationPage {
        // コンストラクター
        public MainPage() {
            InitializeComponent();
        }

        private void button1_Click(object sender, RoutedEventArgs e) {
            var task = new EmailComposeTask();
            try {
                // Toプロパティには宛先を設定します
                task.To = "ch3cooh393@gmail.com";
                // Subjectプロパティにはメッセージのタイトルを設定します
                task.Subject = "Hello Windows Phone";
                // Bodyプロパティにはメッセージの本文を設定します
                task.Body = "Message";

                task.Show();
            } catch (InvalidOperationException ex) {
                MessageBox.Show(ex.Message);
            }
        }

SmsComposeTaskを使ってSMSを送信する

SmsComposeTaskは、SMSを送信するランチャーです。
SmsComposeTaskクラスのShowメソッドを実行すると、メールアプリを起動しメッセージ送信画面を表示します。

f:id:ch3cooh393:20160115150452j:plain

ただし、Windows Phone EmulatorでSmsComposeTaskを実行しSMSを送信する部分まで実行出来たかのように見えますが、これは不正なダミーのSIMカードが使用されているため実際にメッセージは送信出来ておりません。メッセージの送信を含めてのテストを行う場合、実機上で行う必要があります。

ToプロパティやBodyプロパティにテキストを設定しておくと、あらかじめ起動されるメッセージ送信画面に情報が入力された状態で表示する事が出来ます。

using System;
using System.Windows;
using Microsoft.Phone.Controls;
using Microsoft.Phone.Tasks;

namespace SmsComposeTaskTest {
    public partial class MainPage : PhoneApplicationPage {
        // コンストラクター
        public MainPage() {
            InitializeComponent();
        }

        private void button1_Click(object sender, RoutedEventArgs e) {
            var task = new SmsComposeTask();
            try {
                // Toプロパティには宛先を設定します
                task.To = "123-456-789";
                // Bodyプロパティにはメッセージの本文を設定します
                task.Body = "Message";

                task.Show();
            } catch (InvalidOperationException ex) {
                MessageBox.Show(ex.Message);
            }
        }
    }
}