🌸AIWROK软件手机短信采集按需采集
AIWROK软件手机短信采集按需采集这个正则你要按需要重写一下
/*
这个是获取手机短信的例子,
最近很多人用AIWORK怎么获取短信验证码,这样就不用去打开,然后一点一点的采集了。
其实AIwork是有很便捷的方式进验证码采集的,比如下面这段,按时间排序的短信验证码,这样就可以采集出验证码,
并且可以全部输入数字出来,有哪位朋友需要这段代码的请加群或是加我Q获取这段现成的代码。
下面是AIWORK演示代码操作:
*/
// 定义一个函数,用于读取最新的短信
function readLatestSms() {
// 引入Android的ContentResolver和Uri类
var ContentResolver = Packages.android.content.ContentResolver;
var Uri = Packages.android.net.Uri;
// 获取当前上下文的内容解析器
var contentResolver = context.getContentResolver();
// 指定短信内容的URI
var smsUri = Uri.parse("content://sms/inbox");
// 创建一个大小为4的字符串数组,用于指定查询的字段
var projection = java.lang.reflect.Array.newInstance(java.lang.String, 4);
projection = "_id"; // 短信ID
projection = "address";// 短信发送者地址
projection = "date"; // 短信发送日期
projection = "body"; // 短信内容
// 按照日期降序排列
var sortOrder = "date DESC";
// 查询短信内容
var cursor = contentResolver.query(smsUri, projection, null, null, sortOrder);
// 检查游标是否有效并移动到第一条记录
if (cursor != null && cursor.moveToFirst()) {
// 获取发送者地址和短信内容的索引
var addressIndex = cursor.getColumnIndex("address");
var bodyIndex = cursor.getColumnIndex("body");
// 获取发送者地址和短信内容
var address = cursor.getString(addressIndex);
var body = cursor.getString(bodyIndex);
// 返回短信的发送者和内容
return ("From: " + address + ", Content: " + body);
cursor.close(); // 关闭游标
} else {
// 如果没有找到短信,返回提示信息
return ("No SMS found.");
}
}
// 调用函数,获取最新的短信内容并打印
printl(readLatestSms());
// 获取短信内容
let smsContent = readLatestSms();
// 打印短信内容
printl(smsContent);
// 定义正则表达式,用于匹配验证码(假设验证码在特定格式的短信中)
let regex = /【新浪】(\d+)/;
// 执行正则表达式匹配
let match = regex.exec(smsContent);
// 如果找到了匹配的验证码
if (match) {
let captchaCode = match; // 提取验证码
printl("验证码是:", captchaCode); // 打印验证码
} else {
printl("未能找到验证码"); // 如果未找到,打印提示信息
}
以下是代码的详细说明:
1. 引入必要的类
var ContentResolver = Packages.android.content.ContentResolver;
var Uri = Packages.android.net.Uri;
这里引入了Android的ContentResolver和Uri类,用于访问设备上的短信内容。
2. 获取内容解析器
var contentResolver = context.getContentResolver();
通过context.getContentResolver()获取当前上下文的内容解析器,用于查询短信数据。
3. 指定短信内容的URI
var smsUri = Uri.parse("content://sms/inbox");
指定了短信收件箱的URI,用于访问设备上的短信数据。
4. 定义查询字段
var projection = java.lang.reflect.Array.newInstance(java.lang.String, 4);
projection = "_id"; // 短信ID
projection = "address";// 短信发送者地址
projection = "date"; // 短信发送日期
projection = "body"; // 短信内容
定义了一个字符串数组,用于指定查询的字段,包括短信ID、发送者地址、发送日期和短信内容。
5. 排序方式
var sortOrder = "date DESC";
按照短信的发送日期降序排列,确保最新的短信排在最前面。
6. 查询短信内容
var cursor = contentResolver.query(smsUri, projection, null, null, sortOrder);
使用contentResolver.query()方法查询短信内容,返回一个游标对象。
7. 检查并处理查询结果
if (cursor != null && cursor.moveToFirst()) {
var addressIndex = cursor.getColumnIndex("address");
var bodyIndex = cursor.getColumnIndex("body");
var address = cursor.getString(addressIndex);
var body = cursor.getString(bodyIndex);
return ("From: " + address + ", Content: " + body);
cursor.close(); // 关闭游标
} else {
return ("No SMS found.");
}
检查游标是否有效并移动到第一条记录,然后获取发送者地址和短信内容,最后返回短信的发送者和内容。如果没有找到短信,则返回提示信息。
8. 调用函数并打印结果
printl(readLatestSms());
let smsContent = readLatestSms();
printl(smsContent);
调用readLatestSms()函数获取最新的短信内容,并打印出来。
9. 使用正则表达式提取验证码
let regex = /【新浪】(\d+)/;
let match = regex.exec(smsContent);
if (match) {
let captchaCode = match;
printl("验证码是:", captchaCode);
} else {
printl("未能找到验证码");
}
定义了一个正则表达式,用于匹配特定格式的短信中的验证码。如果找到匹配的验证码,则提取并打印出来;否则,打印提示信息。
总结
这段代码的主要功能是从Android设备的短信收件箱中读取最新的短信,并通过正则表达式提取出验证码。代码使用了Android的ContentResolver和Uri类来访问短信数据,并通过正则表达式匹配特定的短信格式来提取验证码。
页:
[1]