Google TV をキオスク化して数ヶ月運用した記録
※本記事にはアフィリエイトリンクを含む場合があります。内容は広告の有無に影響されません。
結論
Google TV をサイネージ専用機にする作業の大半は表示ではなく電源と権限であり、キオスク化の中核である Device Owner は端末に Google アカウントが1つも無い状態でしか設定できない。
結論から
数ヶ月ノータッチで動いています。ただし、そこに至るまでの作業のほとんどは表示とは無関係でした。
Web ページを全画面で映すだけなら数分で終わります。難しいのは「人が触らない前提で、何ヶ月も勝手に動き続ける」ほうで、実際に潰すことになったのは次の3つでした。
- リモコンやホームボタンで、いつの間にか別アプリへ抜ける
- 省エネ設定で夜中に画面が消え、朝になっても戻らない
- 一度フリーズや停電が起きると、誰かが手で復帰させるまで真っ黒
派手なコードは一行も要りませんでした。電源・権限・機種依存、この3つだけです。
構成
Raspberry Pi と Chromium でキオスクを組む選択肢もありましたが、Android が最初から持っている「端末を丸ごと支配する仕組み」に乗ることにしました。テレビ型なら画面・電源・音が一体で、置くだけで完結します。
必要なものは Google TV 端末と、PC から adb でつなぐ環境だけです。端末側で開発者モードを開けば準備は終わりです。
中核は Device Owner
Android には Device Owner(端末所有者) という強い権限があります。企業が配る業務端末をロックダウンするための仕組みで、これを自作アプリに与えると、追加の許可なしで次のことができます。
- 画面を1つのアプリに固定する(ホームも戻るも効かない)=キオスク化
- 夜間は画面のバックライトだけを OFF にし、本体は起こしたままにする
肝は 消灯しても本体は生きていることです。ここで本体ごとスリープさせると、リモートからの復帰も効かなくなり、「復帰不能」の温床になります。消すのは画面だけ、頭は起こしておく。
踏んだ罠
① アカウントが1つでもあると、所有者になれない
Device Owner は「端末に Google アカウントが1つも無い」状態でしか設定できません。初期設定でうっかりログインすると詰みで、factory reset からやり直しになります。
セットアップ中に一瞬ネットワークを切ってアカウント追加を飛ばす、が現実的な回避策でした。
② 権限が無いと、機能が無言で死ぬ
連携している人感センサがまったく反応しない。エラーも例外も出ない。
原因は位置情報権限が未付与だっただけでした。BLE スキャンは位置情報が無いと何も言わずに0件を返します。ログにすら出ません。
この手の「無言の失敗」が、いちばん時間を溶かしました。丸一日です。
③ テレビ本体のタイマーは、コマンドで消せない
ソフト側で徹底的に「消えない設定」を入れたのに、夕方になると箱ごと電源が落ちる。
犯人はテレビのファームウェアが持つ電源オフタイマーで、adb の設定では消えませんでした。結局、テレビ本体のメニューから手で切るしかありません。
「設定を入れたつもり」がいちばん危険です。
④ 設定が黙って無視される機種がある
そもそも「画面を消さない」系の設定は、メーカーによって適用したフリで無視されることがあります。
なので夜間消灯は、真っ黒のオーバーレイをかぶせる擬似消灯を既定にしました。どんな機種でも朝は必ず戻るほうへ倒した形です。確実性を取って省電力を捨てました。
4つの罠に共通していたこと
並べてみると、性質が揃っています。どれも「失敗したことに気づけない」形をしています。
- ①は、詰んだことが factory reset の段階まで分からない
- ②は、エラーも例外もログも出ない
- ③④は、設定した側は成功したと思っている
つまり問題は難易度ではなく可視性でした。難しくて解けないのではなく、失敗したまま先に進めてしまう。だから時間が溶けます。
対策として実際に効いたのは、コードではなく順序でした。確認できない設定に依存せず、確認できる形に倒すという一点です。夜間消灯で擬似消灯を既定にしたのがまさにそれで、機種ごとの「消えない設定」が効いたかどうかは確かめられませんが、オーバーレイが乗っているかは見れば分かります。
確実性を取って省電力を捨てた判断は、いまのところ正解でした。
向いている場合とそうでない場合
常時表示の端末を人手をかけずに何ヶ月も回したいなら、手離れは非常によいです。置いてから数ヶ月ノータッチで動いています。
逆に、GUI だけで完結させたい場合や、コマンドを1回も打ちたくない場合は、市販のサイネージ製品や既製のキオスクアプリを使うほうが合っています。Device Owner まで持っていくコストは、台数が増えて初めて回収できます。
よくある質問
Q1Device Owner の設定に失敗したらどうなりますか?
端末に Google アカウントが1つでも存在すると Device Owner は設定できません。初期設定でログインしてしまった場合、factory reset からやり直しになります。セットアップ中に一時的にネットワークを切り、アカウント追加を飛ばすのが現実的な回避策です。
Q2夜間は画面を消したいのですが、スリープさせてはいけないのですか?
本体ごとスリープさせると復帰しなくなる恐れがあります。消すのは画面のバックライトだけにして、本体は起こしたままにします。機種によっては消灯の設定自体が無視されるため、黒いオーバーレイをかぶせる擬似消灯のほうが確実です。
Q3Raspberry Pi でキオスクを組むのとどちらがよいですか?
画面・電源・音が一体で、置くだけで完結するのが Android 側の利点です。一方で Device Owner の可否や電源まわりの挙動が機種依存になります。構成の比較は別記事にまとめています。