在网上搜到给手机推送消息的实现方式有几种,通过twilio、ifttt、slack等,这些方法都试了一下,都不好使。slack算是最好的,可是我小米手机不知道是不支持还是怎样,slack可以收到消息但是手机不推送也没有任何声音。于是打算通过tasker实现,这个方法虽简单粗暴但是足够灵活。

实现:通过手机接收Python(任何语言)发送的任意通知、文本内容、声音、提醒等

涉及工具:Python,阿里云,手机安装Tasker

思路:1.Python修改某个网址的内容。2.手机Tasker间隔每秒循环读取此网址,发现内容更新则推送通知。

Tasker是用于Android的应用程序,它基于用户定义的配置文件,可单击或计时器主屏幕窗口小部件中的上下文执行任务。它无需root用户或特殊的主屏幕即可控制Android设备。

Google play有下载,内置中文。官网:https://tasker.joaoapps.com/

使用阿里云函数计算服务

在国内最好使用国内服务器,速度比较快,这里使用阿里云函数计算服务,有免费额度,免费额度内只收出站流量费。假如每3秒读取一次,则一个月的费用是8毛钱。

这一步实现方法有很多,假如拥有服务器的话,可以自己写个网页。或者使用其他方法实现,反正只要有一个可读改的网页就行了。

新建函数->HTTP函数->配置部署

代码执行->在线编辑,清空,粘贴以下内容

# -*- coding: utf-8 -*-
from urllib import parse

message = ''

def handler(environ, start_response):
    global message
    status = '200 OK'
    response_headers = [('Content-type', 'text/plain')]
    start_response(status, response_headers)
    if environ.get('PATH_INFO') == '/update':
        try:
            message = parse.parse_qs(environ['QUERY_STRING']).get('message')[0]
        except (KeyError, TypeError):
            message = ''
        return [b'ok']
    return [message.encode('utf-8')]

保存,触发器,路径一栏,复制下来,等会用

https://xxxxx.fc.aliyuncs.com/2016-08-15/proxy/notify_service/notify/

获取网页内容
curl https://xxxxx.fc.aliyuncs.com/2016-08-15/proxy/notify_service/notify/
修改网页内容
curl https://xxxxx.fc.aliyuncs.com/2016-08-15/proxy/notify_service/notify/update?message=这里输入内容
清空网页内容
curl https://xxxxx.fc.aliyuncs.com/2016-08-15/proxy/notify_service/notify/update

配置Tasker

监控消息
     A1: HTTP Request [  方法:GET URL:https://xxxxxxxx.cn-hangzhou.fc.aliyuncs.com/2016-08-15/proxy/notify_service/notify/ 头部: 查询字段: 主体: 要发送的文件: 将输出保存到文件或目录中: 超时(秒):30 信任任意证书:关 自动重定向:关 使用Cookies:关 ] 
     <有内容更新>
     A2: If [ %http_response_length != 0 ]
     A3: 通知 [ 标题:重要通知 文字:%http_data 图标:null 数字:0 固定:关 优先级:1 重复警报:开 LED灯颜色:红色 LED闪光频率:0 声音文件: 震动模式: 类别: ] 
     A4: 文本转语音 [ 文字:您有一条重要通知需要查看 引擎:声音:com.xiaomi.mibrain.speech:zho-CHN 流:3 倾斜:5 速度:3 遵守音频焦点:开 网络:关 立刻继续任务:关 ] 
     <清空>
     A5: HTTP Request [  方法:GET URL:https://xxxxxxxx.cn-hangzhou.fc.aliyuncs.com/2016-08-15/proxy/notify_service/notify/update 头部: 查询字段: 主体: 要发送的文件: 将输出保存到文件或目录中: 超时(秒):30 信任任意证书:关 自动重定向:关 使用Cookies:关 ] 
     A6: End If 
     A7: 等待 [ MS:0 秒:1 分:0 小时:0 天:0 ] 
     A8: Goto 跳转到动作 [ 类型:操作编号 数字:1 标签: ]

之后需要把tasker加入白名单,后台白名单,电池白名单,我的是小米手机,可以在通知选项里面修改tasker的通知声音和悬浮窗。

实际效果

curl https://xxxxx.fc.aliyuncs.com/2016-08-15/proxy/notify_service/notify/update?message=测试一下通知,很长很长的字符串

通过python或者其他语言实现你想监控的内容,通过以上方式对手机进行通知

参考链接:

python 接收 POST 请求并解析

分类: Uncategorized

0 条评论

发表评论

邮箱地址不会被公开。 必填项已用*标注