外部调用termux,实现定时任务

  1. 需求
  2. 需要软件
  3. 步骤

仅做简单记录

需求

既可以自动执行任务,且不需要termux一直运行,因为FV悬浮球我会一直使用,所以可以借助FV悬浮球的任务功能实现。

需要软件

  1. FV悬浮球
  2. termux
  3. termux-api

FV悬浮球用来在满足某条件时启动termux,termux是执行命令的环境, termux-api可以为termux获取手机信息提供条件。

步骤

  1. 安装termux-api,手动给予必要权限,自启动、后台

  2. termux中安装termux-api和python:pkg install termux-api python -y

  3. termux中修改~/.bashrc (我用的是bash,其它的shell用其它文件),添加下面这行代码:

    $python start.py
    
  4. termux中vim ~/start.py,输入:

    import os
    import time
    
    # 获取剪贴板内容
    clipboard = os.popen("termux-clipboard-get").read()
    print("已获取剪切板数据")
    
    # 假如是命令
    # 命令格式termux_command@~/auto-login/@python ~/auto-login/main.py
    if clipboard.startswith("termux_command@"):
      path = clipboard.split("@")[1].strip()
    
      if path:
        if os.path.isdir(path):
          # 修改工作目录
          os.chdir(os.path.join(os.getcwd(), path))
          print("已经修改工作目录", os.getcwd())
        else:
          print("错误路径:%s" % os.path.join(os.getcwd(), path))
    
      # 得到命令
      command = "@".join(clipboard.split("@")[2:]).strip()
    
      # 执行命令
      print("执行命令 %s" % command)
      os.popen(command)
    
      # 替换剪切板的命令,防止重复执行
      time.sleep(10)
      os.popen("termux-clipboard-set '  '")
    
  5. FV悬浮球添加任务,作为入口
    已经上传”任务分享平台“,也可点击这里下载(提取码: jhkj),然后使用FV悬浮球打开即可

  6. 正式使用

    1. 创建任务
      创建任务
    2. 创建子任务
      创建子任务步骤
    3. 子任务的详细
      正式使用

由于FV悬浮球剪切板的问题,不能确定脚本执行完的时间,所以也不能确定的termux关闭时间,所以这里可以关闭后台运行,让其被系统杀死

更好的解决方法:利用termux-task+tasker或MacroDroid,可以直接调用termux中的脚本

作者: 忞翛

出处: https://www.lczmx.top/杂货店/155cd4e8d115/

版权: 本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。

在线工具