Termux的简单应用,为了让群发短信有更便捷高效的解决方案。
前言
Termux
是一个Android下一个高级的终端模拟器,开源且不需要root,支持apt管理软件包,十分方便安装软件包,完美支持Python、PHP、Ruby、Go、Nodejs、MySQL等。随着智能设备的普及和性能的不断提升,如今的手机、平板等的硬件标准已达到了初级桌面计算机的硬件标准,用心去打造完全可以把手机变成一个强大的工具。
关于软件的更多信息及基本配置,可以去看国光的教程,写得很赞很全面。
注意:由于谷歌的政策更新,Termux最新版本的API没有访问手机短信内容的权限,想要实现发送短信的功能,需要使用相对较久的0.31版本。在这里给Termux API 0.31版本下载地址,提取码:ttx1。API的安装方式在国光的文章中也有给出,不清楚可以去翻看。
在了解完Termux并安装好API后,我们的教程正式开始。
具体实现
虽然如今的QQ、微信已经承担了大部分我们的日常通信任务,但是总有一些情况需要电话短信来解决,比如给陌生人传达某些通知。电话是最优的解决方案,但是也会有一部分人倾向于短信。在经历了无数次的折磨之后,我终于发现了Termux
。
假设你现在有一个含有联系人姓名及电话号码的表格,将无用信息删除,只保留姓名和号码两列具体内容后,可以通过文件 -> 另存为 -> 文本文件(制表符分隔)
的方式获得一个格式整齐的文本文档。将其重命名为data.txt
,用记事本打开后选择另存为,在另存为界面调整保存编码为UTF-8
,这步一定要做,不然程序无法正常读取文件。
将得到的文件用QQ或者TIM发送到你的手机并接受,按照国光的教程中建立好文件夹链接的前提下。以QQ为例,在终端中输入下面几行命令便可下载好程序。
cd ~/QQ
wget https://raw.githubusercontent.com/wanakiki/furry/master/termux-sms/messages.py
可以找到默认的信息语句对其进行修改,以达到我们的目的。修改完毕后执行python messages.py
命令,运行程序。
python实现代码:
import sys
import os
def send_sms(aim, text):
"""use two argv to send messages
"""
os.system('termux-sms-send -n ' + aim + ' ' + text)
return
def fileMessage(fileName):
"""send messages form an excel(name, number)
"""
print('start read file')
try:
fh = open(fileName, encoding='utf-8')
except:
print('Can\'t find the data file')
return
# create list (name, number)
group = []
for line in fh:
line = line.split()
group.append(line)
fh.close()
# send message
words = " hello, this is termux" # Replace it with your own words
for people in group:
send_sms(people[1], people[0] + words)
print('finish')
return
def sendOne():
aim = input('Please input your aim number\n')
words = input('Now you can input your message\n')
print('+=======================+')
print('Please check your input:')
print('number: ', aim)
print('words: ', words)
flag = input(
"Now, if your input is correct, input 'y' or 'Y' to send your message: ")
if (flag == 'y' or flag == 'Y'):
send_sms(aim, words)
return
print("""Functions:
1 Only send one message.(Test this program)
2 Send messages form one file.
+============================================+""")
flag = input('Choose the function:')
if flag == '1':
sendOne()
elif flag == '2':
fileMessage('data.txt')