Compose for TVを使用する場合の新規プロジェクト作成の流れ
最近のAndroid StudioではAndroid TV向けのプロジェクトのテンプレートは無いですが
普通のアプリケーションと同じに実装できてEmpty ActivityにAndroid TV向けの設定を追加する形で対応できます
※Activityの追加でAndroid TV Blank Views Activityを選択するとテンプレートのActivityなどが自動生成されますがTV for Composeを使用する場合は不要
必要な設定はDeveloperサイトで確認できます
※日本語訳は古いページが混在してるので英語版で確認すること
https://developer.android.com/training/tv/start/start
https://developer.android.com/training/tv/playback/compose
・leanback/touchscreenのサポートoff
・banner(とアイコン)の追加 ※アイコンはテンプレートで設定済み
・インテントフィルターにLEANBACK_LAUNCHERを追加
<manifest>
<uses-feature
android:name="android.hardware.touchscreen"
android:required="false" />
<uses-feature
android:name="android.software.leanback"
android:required="false" />
<application
...
android:banner= "@mipmap/ic_launcher"
>
<activity>
<intent-filter>
...
<category android:name="android.intent.category.LEANBACK_LAUNCHER" />
</activity>
</application>
</manifest>
・TV for Composeの依存関係を追加
androidx.tv:tv-foundation
androidx.tv:tv-material
[versions]
tv-compose = "1.0.0-alpha10"
[libraries]
androidx-tv-foundation = { group = "androidx.tv", name = "tv-foundation", version.ref = "tv-compose" }
androidx-tv-material = { group = "androidx.tv", name = "tv-material", version.ref = "tv-compose" }
dependencies {
implementation(libs.androidx.tv.foundation)
implementation(libs.androidx.tv.material)
}
Android TVプロジェクトで必須ではないけど必要そうな設定を追加
・おそらく使うであろうInternetのパーミッション追加
・HTTP通信を使う場合はusesCleartextTrafficをtrue(API28以降は初期値false)
※動画や動画情報を取得するWebApiのurlがhttpsでない場合など
・設定しなくて画面は横向きだけど明示的にlandscapeを指定
<manifest>
<uses-permission android:name="android.permission.INTERNET" />
<application
...
android:usesCleartextTraffic="true"
>
<activity
...
android:screenOrientation="landscape"
>
</activity>
</application>
</manifest>
Android Studio Hedgehog 2023.1.1 RC 3 built on November 3, 2023