![](https://habrastorage.org/files/dba/814/d23/dba814d23737463e91fccbe0c111da28.jpg)
「Device Lab by Google」コンテストの一環としてのDmitry Barkalovによる記事 。
Android TVをサポートするためのアプリケーションの改善
テレビで最初に開始されるアクティビティを宣言する必要があります。 バーとツールバーのステータスなしで縦向きにする必要があります。 持っているだけなので、既存のフィルターにインテントフィルターを追加します。
<activity android:name=".ui.LauncherActivity" android:label="@string/app_name" android:banner="@drawable/ic_banner"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LEANBACK_LAUNCHER" /> </intent-filter> </activity>
アプリケーションを適切なセクションに表示するには、Androidを追加します:isGame = "true"
<application android:name=".MathableApplication" android:label="@string/app_name" android:theme="@style/AppTheme" android:isGame="true">
その後、テスト用のアプリケーションを実行できます。 ただし、テレビにはタッチスクリーンがなく、1つのリモコンで行う必要があることを考慮する必要があります。
コントロールは、フォーカスを移動することにより選択されます。 したがって、たとえば、ボタンの場合、フォーカス状態を背景セレクターに追加しました。
<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/btn_disabled" android:state_enabled="false"/> <item android:drawable="@drawable/btn_pressed" android:state_pressed="true"/> <item android:drawable="@drawable/btn_focused" android:state_focused="true"/> <item android:drawable="@drawable/btn_normal"/> </selector>
ナビゲーションを制御するには、フォーカスできる要素とフォーカスが移動する順序を指定する必要があります。 それをする方法はここに書かれています 。
Android-TVをラップトップに接続して、アプリケーションをインストールして実行します
アプリケーションはエミュレーターで実行されますが、実際のデバイスで実行したいです。 もちろん、ネットワーク経由でapkを転送したり、プレイストアにベータ版を公開したりできます。 しかし、これは長い時間であり、突然デバッグが必要になるため、投稿のみ、ハードコアのみです!
テレビには、ホストおよびデバイスとして機能できるUSBポートがあります。 デフォルトでは、デバッグモードはオフになっており、ポートはホストモードで動作します。 デバッグできるようにするには、これらの設定を変更する必要があります。 これを行う方法は、製造元からの/>指示で詳しく説明されています。
1つの問題があります。USBケーブルA-Aがありませんでした。 お父さん-お父さん、2つの既存の尾からはんだ付けする必要がありました。 誰かがこれを行う必要がある場合は、1対1のすべてのワイヤを接続します。
![](https://habrastorage.org/files/370/ea7/98a/370ea798ab6640b3b67d6a2319047f4a.jpg)
接続後、デバイスはデバッグに使用できるデバイスのリストに表示されました。
![](https://habrastorage.org/files/ad7/cac/af4/ad7cacaf48b04ee7b0bbd6af6f2aa565.png)
発射!
テレビとして、モニターはHDMI-VGAアダプターを介してデバイスに接続されます。 実行をクリックします! アプリケーションが開始されました。 エミュレータと特に違いはありません。 これで、リモートコントロールを使用してアプリケーションをナビゲートできます。 Android TVアプリを使用して制御することもできます。 ネクサスでした。
![](https://habrastorage.org/files/6e5/99b/10d/6e599b10da3d42f9ba9d59d51c50d2ba.jpg)
リモートコントロールモバイルアプリケーションは、Wi-FiまたはBluetooth経由でAndroid TVに接続できます。
![](https://habrastorage.org/files/6f7/f45/767/6f7f457671da4f2994c9700018dd5e6d.png)
Android TVのアプリケーション。
![](https://habrastorage.org/files/739/693/a9f/739693a9f2344dc297c5fd67a4c678af.png)
Android Playストアでアプリケーションを公開できます! その結果、Android TVにアプリケーションを適合させることはまったく難しくないことが判明しました。 アプリケーションマニフェストに必要な情報を追加し、コントロール間のフォーカス移動を処理するだけで十分です。 もちろん、それらに適切なセレクターを追加します。
GridViewとRecyclerViewは、フォーカス移動でも予測どおりに機能します。 これで十分でない場合は、ドキュメントでフォーカスの動きを自分で処理できます。その方法の例があります。
テレビ用アプリケーションの作成に関する役立つ情報はこちら 。