1 Star 1 Fork 2

chen / system_alarm_clock_by_adb

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

new_clipper

介绍

一个支持用adb设置 系统 闹钟的apk


效果

github图片会挂掉,所以点开链接看吧:

小米:https://www.wenjie.store/blog/img/%E8%AE%BE%E7%BD%AE%E9%97%B9%E9%92%9F_%E5%B0%8F%E7%B1%B3_1626953593249.gif
华为:https://www.wenjie.store/blog/img/%E9%97%B9%E9%92%9F%E8%AE%BE%E7%BD%AE_%E5%8D%8E%E4%B8%BA.gif

可以看到小米的屏幕会闪,而华为P30不会,这是系统决定的,我也控制不了


设置闹钟命令

adb shell am start-foreground-service -n wenjie.star.system_alarm_clock_by_adb/.AlarmClockService -a "set_alarm_clock" --es msg \"测试闹钟1\" --ei hour 20 --ei min 20

  • 上面命令意思就是:晚上8点20分响起闹钟
  • --es msg [闹钟备注]
  • --ei hour[闹钟小时(24小时制)]
  • --ei min [闹钟分钟]

  • 如果运行上述命令后出现错误:Error: Not found; no service started.
  • 那么请执行一次adb shell am start wenjie.star.system_alarm_clock_by_adb/.MainActivity
  • 原因是后台进程被杀了,后台进程能不能保活又得看厂商的配置,所以最终建议就是完成下面的手机适配后,每次执行设置闹钟命令之前,都执行激活

手机的适配

如果安装apk后直接执行上面的设置闹钟命令,那是必定无效的(可能没有报错),为了适配各种手机版本+权限,你需要看完下面的设置教程

对于不同版本的手机,各有各的适配方案,请有耐心的看完,当初我也废了不少时间实验


对于有【后台弹出界面】权限限制的手机

比如下面这个权限的手机:
image.png

我们需要执行命令:adb shell appops set wenjie.star.system_alarm_clock_by_adb [手机厂商权限key] allow 你可能很疑惑[手机厂商权限key]是个啥,没关系,下面就会讲到

要找出[手机厂商权限key],我们需要如下操作

  • 安装完apk后,执行命令:adb shell appops set wenjie.star.system_alarm_clock_by_adb SYSTEM_ALERT_WINDOW allow,没有报错就是成功
  • 再执行命令:adb shell appops get wenjie.star.system_alarm_clock_by_adb,下简称get命令 image.png
  • 注意红框那条,等下就消失了
  • 然后我们在手机手动开启【后台弹出界面】的权限: image.png
  • 再次执行get命令,会发现10021这个权限不见了: image.png
  • 到此为止,我们就成功发现[手机厂商权限key]就是10021

  • 接着我们再把【后台弹出界面】的权限关掉: image.png
  • 执行命令(你也可以再用set命令验证一次):adb shell appops set wenjie.star.system_alarm_clock_by_adb 10021 allow,下简称set命令 image.png
  • 没有报错,那就是成功了,接着再执行设置闹钟的命令就能成功了

如果你不确定到底是什么数字,那么在安装完应用后,写一个for脚本遍历数字去set就行了


对于没有【后台弹出界面】权限的手机

这种手机通过service调用startActivity是也是会失败的(没有报错),但是对应权限的权限不同,比如我手上的华为P30 Pro就是

但这种手机设置权限非常简单,仅仅需要在安装apk后执行如下命令即可: adb shell appops set wenjie.star.system_alarm_clock_by_adb SYSTEM_ALERT_WINDOW allow

之后再执行闹钟的命令就能成功了


空文件

简介

一个能用adb设置闹钟的apk 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/wenjie2018/system_alarm_clock_by_adb.git
git@gitee.com:wenjie2018/system_alarm_clock_by_adb.git
wenjie2018
system_alarm_clock_by_adb
system_alarm_clock_by_adb
master

搜索帮助