[Android] アプリが動作している端末の種類を判定する

テレビは、スマホやタブレット等の他の端末とは搭載されているハードウェア機能が大きく異なります。そのため、テレビとテレビ以外の端末の両方で動作させるアプリを開発する場合、動作している端末を判定し、ロジックを振り分けることがあります。今回のレッスンでは、アプリが実行されている端末がテレビかどうかを確認する方法について説明します。
広 告
目次
前提条件
動作確認端末
- Nexus Player
- Nexus 7
1. テレビで動作しているかを確認する
アプリがテレビ上で動作していうかどうかを判定する方法として、UiModeManager#getCurrentModeType()を使う方法があります。 このメソッドが返却する値がConfiguration.UI_MODE_TYPE_TELEVISIONの場合、テレビ上でアプリが実行されていることになります。
以下が判定するためのサンプルコードです。
MainActivity.java
if (uiModeManager.getCurrentModeType() == Configuration.UI_MODE_TYPE_TELEVISION) { // テレビで実行されている Toast.makeText(getApplicationContext(), "TV", Toast.LENGTH_SHORT).show(); } else { // テレビ以外で実行されている Toast.makeText(getApplicationContext(), "NOT TV", Toast.LENGTH_SHORT).show(); }
Nexus Player(テレビ)で上記のコードを実行すると以下のようにトースト表示されます。

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