今あるものでスマートホーム大作戦。iPhoneでAndroidTVを操作します。前回は電源をON/OFFしましたが、今回は直接アプリケーションを起動させます。アプリケーションの起動って、わざわざ選ばないといけないからめんどくさいんですよねー。
iPhoneをリモコン代わりにしてスマートホームを実現させる
iOSに標準搭載されているショートカット アプリを使って、スマートホームを実現させます。これまでの記事では、「Hey Siri!」で電源をつけました。これだけでも結構テンションが上がります。
やることさえわかれば、作るショートカット レシピはとても簡単ですからぜひトライしてみてください。
で、今回は直接アプリケーションを起動させます。
アプリケーションの起動って、結構めんどくさいんですよね。「ホーム」押してこちこち選んでようやく起動!という手順で。アンドロイドテレビはお世辞にもぬるぬる動くとは言えないので、割とストレスはマッハです。
ということで「Hey Siri! Youtubeつけて!」といって一発でYoutubeアプリやAmazon Primeアプリを起動させるショートカット レシピを作っていきます。
手順は2Step。
です。順番にやっていきましょー。
まずはアンドロイドテレビ内のアプリ情報を取得する
AndroidTV内には色々とアプリが入っていると思います。Youtubeなんかは既に入っているかとは思いますが、TVerなど後からユーザがインストールしたアプリもあるかと思います。
それぞれには固有の情報がありまして、この固有情報を取得し、iPhoneから送ることにより希望のアプリを指定する必要があります。
アプリ情報の取得方法ですが、これまたREST APIを使います。REST APIの使い方は以下の過去記事に詳しく書きましたのでご覧ください。
こちらにテレビ側の設定も書いてありますので、テレビ側の事前準備も既に整っている前提で進めます。
コマンドの送り方
今回はAPIの内、「getApplicationList」のmethodを使います。上記記事にある様にコマンドを送るのですが、送る際のAPI パラメータを以下の様に変更します。
“method”: “getApplicationList”,
“params”: [],
“id”: 60,
“version”: “1.0”
}
変数をこれに変えるだけでアプリの情報を送ってくれます。
レスポンスの読み方
{“title”:”アプリ名”,
“uri”:”アドレス”,
“icon”:”“},…
と、こんなレスポンスが返ってきます。アプリ数分だけなので結構長いです。
この[title]の次のアプリ名で、起動させたいアプリを探してください。使うのはその次にある[uri]です。com.うんちゃらかんちゃらって続く長いアドレスです。
次にiPhoneのショートカット レシピの作り方
これまた電源操作をした時のショートカット レシピとほぼ同じです。送るパラメータが異なるだけです。
Step1:URLアドレスを変更する
最後を「appControl」に変更します。それだけ。
Step2:パラメータを変更する
今回のレシピでのパラメータは以下です。各項目を微妙に変えています。使うのは[setActiveApp]です。
パラメータは今回はON/OFFではなく、辞書型のテキストデータです。
キーと、先ほど調べたuriを入力してください。
変更点はこれだけです。これだけで準備完了!「Hey Siri!Youtubeつけて!」というとあら不思議!一発でYoutubeが起動されます!
※注意点
ここで電源操作編と同様、JSONで用意する箱には注意をお願いします。JSONエラーで動きません!
params:配列
id:数字
version:テキスト
まとめ
iPhoneが非接触リモコン代わりになるこのスマートホーム計画。だんだんと色々できる様になってきました。今回はYoutubeにしてみましたが、勿論プライムビデオやTVerを設定することもできます。話しかければアプリを一発起動!素晴らしい!
次は本物のリモコンの代わりになる様、テレビのチャンネル変更にトライしてみます。
コメント
初めまして!BRAVIAを持っておりiphoneのショートカット関連で、こちらのHPを見つけて来ました。
テレビの付ける・消すのショートカットはできたのですが、、、
Youtube等のURLを手に入れたいのですがhttpリクエストの方法と手段が分からず
YoutubeのURLを教えていただけないでしょうか?
素人な質問をお許しください。
初めまして。
参考にさせていただいております。
当BRAVIAでYouTubeのショートカットを作成した所、以下の内容が出て機能しませんでした。
ご教授頂ければ幸いです。
{“error”:[41401,”Failed to Launch”],”id”:601}
こんにちは、初めまして!コメントありがとうございます!
エラーコード調べてみましたが以下の様です。
「Failed to launch, for example, because another application is running.」
プライムビデオとyoutubeを行き来させてみましたが普通に動きました。
paramsの中のuriが間違っていると同様のエラーコードを吐きましたので、paramsの中のuriをご確認ください。
記事内を参考に、getApplicationListからyoutubeのアドレスを取得することができます。