热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python为我定时发短信

Python为我定时发短信,Go语言社区,Golang程序员人脉社

原文链接:http://www.xdbcb8.com/archives/2396.html

今天我试试来用Python发定时短信。实现这个功能需要借助安卓运行Python的神器QPython,这个我们之前介绍过的,忘记的小伙伴可以去看看相应的文章啦。

安卓运行Python的神器--QPython

这次我们使用的QPython3,这个版本发布于2017年12月28日,没错最新版就是这个。还有一个QPython,这个是支持Python2的,最新版本是2018年12月31日,实测发送短信不成功。

要实现本次功能,必须符合以下两个条件才行:

1、赋予QPython3两个权限:

发送短信、读取短信,如下图:

2、用到androidhelper这个库。

一些基本概念

androidhelper这个库在QPython IDE中简化了QPython SL4A开发,其中“hepler”类派生自包含SL4A Facade函数和API文档的默认Android类。

这里再把SL4A的概念普及一下,SL4A是Scripting Layer for Android 的缩写,中文直译为“安卓的脚本层”,与Android Scripting Environment(ASE)意义相同,据Google官方博客介绍,SL4A将脚本语言带入Android,允许用户编辑和执行脚本,直接在Android设备上运行交互式解释器。(来源:百度百科)

换句话说就是允许运行在安卓系统上的脚本语言,当然这里包括Python。

效果演示

看看视频:

https://www.bilibili.com/video/av49110191/

这里演示一下1分钟后给10086发送流量查询代码,具体的短信代码各地可能不同,可以问问当地的运营商。

我们收到的短信是这样的:

因为我们主要关心的是流量使用情况,所以其它部分就用正则表达式过滤掉了。

结果就变成这样了:

核心代码
def sendSms():
    """
    发送短信
    """
    d = Android()
    # 创建一个安卓运用实例
    
    d.smsSend("10086", "113")
    # 给10086发送短信查询代码
    
    time.sleep(5)
    # 暂停5秒,给手机一个发送时间
    
    sms_data=d.smsGetMessages(False, "inbox")
    # 读取短信
    
    latest_sms = sms_data.result[0]["body"]
    # 取得短信内容
    
    patterns = re.compile(r";已使用移动数据流量为(.*?);")
    flow = re.findall(patterns, latest_sms)
    # 只要流量部分
    
    if flow:
    # 要是匹配到表明查询成功,输出结果
        ydFlow = flow[0]
        print("已使用" + ydFlow)

更多的关于其API介绍,可以看看下面的网址:

androidhelper-apis

总结

我们实现了短信的发送、读取,其实只要你脑动大开,可以做很多嘿嘿嘿的事情,如果带上一个聊天机器人的API,可以实现短信和机器人聊天啊……

详细的代码,我已经上传到GitHub上了(欢迎Star)。关注公众号:学点编程吧,发送:短信,可以获得代码地址和对应QPython3安卓软件。


推荐阅读
author-avatar
c_陈可儿
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有