YYPOST群发软件 发表于 2025-3-5 09:09:03

🌸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]
查看完整版本: 🌸AIWROK软件手机短信采集按需采集