吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 6695|回复: 45
收起左侧

[Python 原创] 小米电视开机启动指定APP脚本PY版

  [复制链接]
毛阿毛 发表于 2023-9-15 16:33
本帖最后由 毛阿毛 于 2023-9-18 07:14 编辑

今天发现小米电视好像偷偷更新了。老人模式。把用户装的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。连开机广告都来不及放,顺便解决了开机广告的问题。

免费评分

参与人数 7吾爱币 +12 热心值 +7 收起 理由
xiahhhr + 1 + 1 用心讨论,共获提升!
kk1212 + 1 + 1 谢谢@Thanks!
lcg2014 + 1 + 1 用心讨论,共获提升!
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
echoaku + 1 + 1 用心讨论,共获提升!
zhczf + 1 我很赞同!
huang0817 + 1 + 1 先收藏一波,感觉以后用得上

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 毛阿毛 发表于 2023-9-15 16:37
本帖最后由 毛阿毛 于 2024-12-19 07:32 编辑

2024.12.19 这个脚本有时候会抽风,连续打开APP,后来又就没用了,最近兴起又折腾了个了下。
试了下没有之前的毛病了,关机10秒后才会判断关机,中间偶尔检测不到不会判定关机。开机2秒后启动APP。

下面是2.0脚本内容:

[Python] 纯文本查看 复制代码
#!/usr/bin/python
# -*- coding: utf-8	-*-
#小米电视开机启动指定APP脚本 2.0

import requests
import time
import ping3
import threading

#需要安装模块
#pip install ping3 requests

#小米电视固定IP地址
mitv_ip = "192.168.1.33"
#开启启动的APP包名,可以用 mt管理器 打开AndroidManifest.xml,搜索package获取包名
my_app_name = "com.dianshijia.newlive" #这里是电视家的

mitv_info_url = "http://"+mitv_ip+":6095/request?action=isalive"
mitv_startapp_url = "http://"+mitv_ip+":6095/controller?action=startapp&&type=packagename&packagename="+my_app_name

def start_app():
	try:
		print("启动APP...")
		res1 = requests.get(mitv_startapp_url, timeout=1).json()
		#time.sleep(2)
		print(res1)
	except:
		print("启动APP失败...")
		pass

alive_count = 0
offline_count = 0

while (1):
	#用ping检测地址。如果通则跳过检测
	response_time = ping3.ping(mitv_ip, timeout=1)
	#print(response_time)
	print("offline_count:",offline_count,"alive_count:",alive_count,"\r",end="")
	if not response_time:
		#time.sleep(1)
		offline_count += 1
		continue
	try:
		res = requests.get(mitv_info_url, timeout=1).json()
		if res['msg'] =='success':
			#print("发现小米电视启动")
			alive_count += 1
		else:
			offline_count += 1
	except:
			#print("小米电视检测中...")
			offline_count += 1


	if offline_count > 10 and alive_count > 2:
		print("发现开机,开启指定APP")
		start_app()
		alive_count = 0
		offline_count = 0

	if alive_count > 9999 or offline_count > 9999:
		alive_count = 99
		offline_count = 99
	
	time.sleep(1)
braxiong 发表于 2023-9-27 15:03
老人模式本来就挺好的,突然改了真的难受,但是小米的好处就是没限制装第三方桌面
本着少折腾的心理,老人模式也不是不能用就没搞第三方了,一直相安无恙,谁知道突然就自动更新了桌面恶心人
兄台你的方法虽然是好,但是长远来看我还是觉得装第三方桌面比较好,毕竟你这方法局限性有点大,按一下home键就会又返回到坑爹的首页
而且软件自启动大部分软件都是支持的,没必要特地浪费一个树莓派去监控接口
bg8chu 发表于 2023-9-15 20:51
paist 发表于 2023-9-15 20:54
好东西,学习了
aa123dami 发表于 2023-9-15 21:37
小米太辣哭啊了
lxd1215 发表于 2023-9-15 21:42
有点难受
头像被屏蔽
moruye 发表于 2023-9-15 21:45
提示: 作者被禁止或删除 内容自动屏蔽
andytang866 发表于 2023-9-15 22:25
太专业了,小白表示不会操作
laobai6866 发表于 2023-9-15 22:49
我直接连夜把MIUI For TV精简了,卸载桌面,换第三方桌面。
今朝有酒须纵歌 发表于 2023-9-15 23:03
厉害了。老铁!!!!!!!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-1-7 19:24

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表