利用autoxjs 获取手机短信

文章正文
发布时间:2025-11-16 23:42

因为有2个手机有时候出门不方便带,紧急时候需要收个验证码。所以突发奇想,能不能利用autoxjs写一个获取手机短信内容的demo。
在查阅多个资料后终于实现类似功能

[JavaScript] 纯文本查看 复制代码

var uri = android.net.Uri.parse("content://sms/inbox"); // 短信内容的 URI var cursor = context.getContentResolver().query(uri, null, null, null, null); // 获取短信的游标 if (cursor != null && cursor.moveToFirst()) { for (var i = 0; i < cursor.getCount(); i++) { // 使用 for 循环逐条读取短信 var bodyIndex = cursor.getColumnIndex("body"); // 短信内容在游标中的索引 var senderIndex = cursor.getColumnIndex("address"); // 发送者号码在游标中的索引 var dateIndex = cursor.getColumnIndex("date"); // 短信日期在游标中的索引 var body = cursor.getString(bodyIndex); // 获取短信内容 var sender = cursor.getString(senderIndex); // 获取发送者号码 var dateMillis = cursor.getLong(dateIndex); // 获取短信日期的毫秒数 var date = new Date(dateMillis); // 将毫秒数转换为日期对象 var year = date.getFullYear(); var month = (date.getMonth() + 1).toString().padStart(2, '0'); var day = date.getDate().toString().padStart(2, '0'); var hour = date.getHours().toString().padStart(2, '0'); var minute = date.getMinutes().toString().padStart(2, '0'); var second = date.getSeconds().toString().padStart(2, '0'); var formattedDate = year + '年' + month + '月' + day + '日 ' + hour + '时' + minute + '分' + second + '秒'; log("发送者: " + sender + ", 短信内容: " + body + ", 发送时间: " + formattedDate); if (!cursor.moveToNext()) { // 如果没有下一条短信了,就跳出循环 break; } } } cursor.close();


以上代码放到VSCODE
手机上的autoxjs连接VSCODE(VSCODE需安装autoxjs插件,手机和电脑同一个网络,autoxjs要给予读取短信的权限)
按F5运行
最终运行效果如图

微信截图_20230913103015.png


最后我们如果有服务器 可以将短信的内容发送到我们的服务器,或者推送到微信,从而实现远程接收家里手机短信的效果  

首页
评论
分享
Top