今天发现小米电视好像偷偷更新了老人模式,把用户装的APP放到某个分类里了。本来用的好好的,这下父母又找不到看电视的APP了。其实小米电视自带官方的API接口,国内好像讨论的不多。这方法适家里有Python或者NAS,或其他任何可以执行Python脚本并且24小时开机的设备。
脚本前提:
小米电视(要有固定IP,可以通过路由器绑定,脚本里是192.168.1.33)
树莓派(可以执行PYTHON的24小时运行的设备)
python3(需要安装requests模块)
脚本原理:
24小时不停访问小米电视的API接口查询状态,只要发现开机,就立马发送启动APP的指令。
下面是代码,代码不多,有注释:
#!/usr/bin/python # -*- coding: utf-8 -*- #小米电视开机启动指定APP脚本 #pip install requests import requests import time #是否开始TAG isalive_tag = 0 #小米电视固定IP地址 mitv_ip = "192.168.1.33" #开启启动的APP包名,可以用 mt管理器 打开AndroidManifest.xml,搜索package获取包名 my_app_name = "com.dianshijia.newlive" #这里是电视家的 #查询小米电视状态的API地址 mitv_info_url = "http://"+mitv_ip+":6095/request?action=isalive" #使用小米电视API启动指定APP的地址 mitv_startapp_url = "http://"+mitv_ip+":6095/controller?action=startapp&&type=packagename&packagename="+my_app_name while (1): time.sleep(1) if isalive_tag ==0: try: res = requests.get(mitv_info_url, timeout=1).json() if res['msg'] =='success': print("发现小米电视启动。尝试开启指定APP") res1 = requests.get(mitv_startapp_url, timeout=1).json() print(res1) isalive_tag = 1 except: print("访问异常,跳过") else: #开机后继续检测。直到关机 try: res = requests.get(mitv_info_url, timeout=1).json() except: print("访问异常,跳过") isalive_tag = 0下面内容需要自己修改:
#小米电视固定IP地址 mitv_ip = "192.168.1.33" #开启启动的APP包名,可以用 mt管理器 打开AndroidManifest.xml,搜索package获取包名 my_app_name = "com.dianshijia.newlive" #这里是电视家的WIN下有Python环境的可以直接双击运行。查看效果。(如何自动运行我就不发了。根据自己设备来)
执行效果:
只要局域网内的小米电视一开。就会立马打开指定的APP。连开机广告都来不及放,顺便解决了开机广告的问题。