我家電視是小米電視3 我一直想用電腦或其他方式控制電視,但是因為他沒有紅外線可以送 所以很麻煩
後來發現可以透過api的方式來操作小米電視 這太贊了
首先 你要先知道你的電視連的ip是多少 例如192.168.2.55
然後 我不知道需不需要開啟adb(因為我的有開啟 開啟方式就是去你的設定->版本號 連續多點好幾次之後 你就會有開發者模式,之後你在其他的分頁就可以看到adb功能可以讓你開了)
好 如果你ping的道你電視 你就先搞定一大部分了
我在github上有看到有人分享python的控制 https://github.com/simse/pymitv/blob/master/pymitv/control.py
https://github.com/spocky/mireco
不過看了看code 其實他也只是去調用小米自己的api而已,且也不難 乾脆不用她(是可以參考他一下拉)
調用方式很簡單
取得電視狀態(這裡ip請記得換成你家電視ip)
http://192.168.2.55:6095/request?action=isalive
取得電視音量
http://192.168.2.55:6095/general?action=getVolum
按下menu按鈕
http://%s:6095/controller?action=keyevent&keycode=%s
例如
http://192.168.2.55:6095/controller?action=keyevent&keycode=menu
開啟指定的app
http://%s:6095/controller?action=startapp&&type=packagename&packagename=%s
例如我要開啟沙發桌面,而沙發桌面的packagename就是com.shafa.launcher
http://192.168.2.55:6095/controller?action=startapp&&type=packagename&packagename=com.shafa.launcher
packagename要怎知道這就又是另外一回事了,你有apk檔時,去google應該有不少方法教學可以看
切到hdmi頻道
http://DEVICE_IP:6095/controller?action=changesource&source=%s
例如
http://192.168.2.165:6095/controller?action=changesource&source=hdmi1
http://%s:6095/general?action=getVolum
http://%s:6095/general?action=setVolum&volum=%d&ts=%s&sign=%s
http://%s:6095/general?action=modifyDeviceName&name=%s&ts=%s&sign=%s
http://%s:6095/generalA?action=systemCleanInfo
http://%s:6095/controller?action=play&type=video&mediaid=%d&cpsrc=%s&cpid=%s&ci=%d&prefersource=%d&clientname=%s&apikey=%s&ts=%s&sign=%s
http://%s:6095/controller?action=getinstalledapp&count=999&changeIcon=1
http://%s:6095/controller?action=getsysteminfo
http://%s:6095/account?action=getState
http://%s:6095/account?action=addNew&data=%s
感谢老哥的分享,我在这里分享一下音量控制方法。参照了另一位老哥的
音量控制参照[这位老哥](https://blog.andiedie.cn/posts/cb98/)反编译后的控制参数
具体使用方法:
http://{{{ip}}}:6095/general?action=setVolum&volum={{{volume}}}&ts={{{time_tag1}}}&sign={{{md5}}}
ip:为小米电视或例子的IP地址
volume:需要设定的音量值
time_tag1:时间标签(这个值应该是可以随意设,最少5位?)
md5:这个最重要,是验证码,下面为该值的计算方法。
md5=md5(mitvsignsalt&volume&mac&time_tag)
mitvsignsalt:固定值
volume:设定的音量
mac:以太网口mac地址(不是wifi)
http://ip:6095/controller?action=getsysteminfo
可通过上面方法获取or什么其它方法
time_tag2:取time_tag1的后5位数(我试过随便编5位数就可以)
然后计算他们的MD5值:
找了好久的方案。没想到这么简单。感谢播主的分享!!我的小米盒子3也能用!