Qpython读取手机短信

环境: 手机RedMi Note 9 Pro 系统MIUI12
自带应用商店下载 QPython OP
在设置中要打开Qpython OP 的相关权限, 否则会空指针
QPython OP 使用手册

读取短信代码如下
一个简单示例

from android import Android
d = Android()
# 获取短信的数量
c = d.smsGetMessageCount(False) # False表示读取所有的短信 True表示读取未读
print("所有短信的数量", c)
# 获取短信ID
ids = d.smsGetMessageIds(False)
print("短信ids",ids)

完整代码

# 使用QPython读取手机短信并保存为csv

from androidhelper import Android
import csv

d = Android()

# 读取短信的具体内容, 默认读取收件箱内容
sms_data = d.smsGetMessages(False, "inbox")
#print(sms_data.result)
iflytek = []
for sms in sms_data.result:
    # 只保存特定号码的短信
    if sms['address'] == '106814830000148':
        iflytek.append(sms)
names = ['_id', 'address', 'date', 'body', 'read',  'status', 'type']
with open('iflytek_sms.csv', 'w', newline='', encoding='gbk') as f:
    f_csv = csv.DictWriter(f, names)
    f_csv.writeheader()
    f_csv.writerows(iflytek)
    print('done')

names=['_id','address','date','body','read','person','status','type']

_id是每条短信的原始id,有些数字不连续,估计是因为部分短信被删除了
address就是对方手机号
date就是短信息的时间戳
body是短信具体内容
read表示已读未读,1为已读,估计0是未读。
person不知道是啥,收件箱sent时无该项。
status不知道是啥
type,发信息还是收信息,1为收,2为发

官方链接见下:
https://www.qpython.org/en/guide_libraries.html#androidhelper-apis

QPython 文档

https://www.bilibili.com/read/readlist/rl321663

  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值