[Android] ハードウェア機能の利用可否を確認する

前回のレッスンでは、アプリが、ある特定のハードウェア機能の利用を必須ではないことを宣言する方法を説明しました。しかしその場合、そのハードウェア機能の搭載有無に関わらず、アプリがインストールされ実行される可能があります。そのためアプリ実行時に、ハードウェア機能の利用可否を確認し、ロジックを振り分ける必要があります。今回のレッスンは、ハードウェア機能の利用可否をロジックで確認する方法について説明します。
広 告
目次
動作確認端末
- Nexus Player
- Nexus 7
1. ハードウェア機能の利用可否を確認する
Androidフレームワークは、アプリが実行されている端末でハードウェア機能が利用できるかを判定することができます。アプリ実行時に特定ハードウェア機能が利用できるかを判定するためには、PackageManager #hasSystemFeature(String)を利用します。引数にハードウェア記述子の文字列を渡すことで判定できます。
以下にサンプルコードを示します。
if (getPackageManager().hasSystemFeature("android.hardware.touchscreen")) { // タッチスクリーン機能が利用できる Toast.makeText(getApplicationContext(), "Touch Screen OK", Toast.LENGTH_SHORT).show(); } else { // タッチスクリーン機能が利用できない Toast.makeText(getApplicationContext(), "Touch Screen NG", Toast.LENGTH_SHORT).show(); }
Nexus Player(テレビ)で上記のコードを実行すると以下のようにトースト表示されます。

Nexus 7(タブレット)で実行すると以下のようにトーストが表示されます。

ハードウェア機能の利用可否を確認する方法についての説明は以上です。
次回のレッスンでは、アプリが実行されている端末がテレビかどうかを判定する方法について説明します。