ユニバーサルWindowsアプリ(Pre)入門006:デバイスが機能に対応しているか調べる

火曜日 , 23, 6月 2015 Leave a comment

 毎度のお約束、本記事はプレビュー状態のOS、IDE、SDKを利用しております。製品版では異なる可能性があります。

PC? 電話? XBox? というより機能があるかどうか

 

  ユニバーサルWindowsアプリはご存知のとおり、PCからWindows Phone、IoTデバイス、XBoxと様々な環境で動作します。 そのため、アプリケーション側で自分がどのような環境で動作しているか判定する必要が出てきます。この場合に、ドキュメントなどを眺めていると「この端末はPCか電話か?」よりも「この端末には求める機能(センサーなど)があるか?」という判定を推奨している気がします。 まぁ、新しいプラットフォームが増えた場合などにもそのほうが柔軟そうですね。

 

どうやって書くの?

 

 まずはコードを、

// Windows Phoneのハードウェアボタンがあるか確認する
// Add "using Windows.Foundation.Metadata;"
// Windows.Phone.UI.Input.HardwareButtonsはハードウェアボタンをコードから利用するときのクラスがある名前空間
bool isHWButton = ApiInformation.IsTypePresent("Windows.Phone.UI.Input.HardwareButtons");

if (isHWButton)
{
    // ハードウェアボタンが存在する場合はWindows Phone
    this.text.Text = "Windows Phone";
}
else
{
    // Windows Phoneじゃない
    this.text.Text = "それ以外";
}

 

 ApiInformation.IsTypePresentメソッドで判定を行いbool値の結果を得ます。

 引数の「Windows.Phone.UI.Input.HardwareButtons」はハードウェアボタンを利用するときにお世話になる名前空間でしたよね。そういう指定ルールなのかなと推測。文字列じゃなくて、定数などで指定できると嬉しいですが、今のところはこのような記述になるようです。

 

 PCと電話で確認したところ、ちゃんと動きました・・・というキャプチャーですが、シンプルすぎでした・・・。

wp_ss_20150623_0002


Please give us your valuable comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください