B2B网络软件

标题: 🌸AIWROK软件手机短信采集按需采集 [打印本页]

作者: YYPOST群发软件    时间: 昨天 09:09
标题: 🌸AIWROK软件手机短信采集按需采集
AIWROK软件手机短信采集按需采集





这个正则你要按需要重写一下


  1. /*
  2.   这个是获取手机短信的例子,


  3.   最近很多人用AIWORK怎么获取短信验证码,这样就不用去打开,然后一点一点的采集了。

  4.   其实AIwork是有很便捷的方式进验证码采集的,比如下面这段,按时间排序的短信验证码,这样就可以采集出验证码,

  5.   并且可以全部输入数字出来,有哪位朋友需要这段代码的请加群或是加我Q获取这段现成的代码。

  6.   下面是AIWORK演示代码操作:
  7. */


  8. // 定义一个函数,用于读取最新的短信
  9. function readLatestSms() {
  10.     // 引入Android的ContentResolver和Uri类
  11.     var ContentResolver = Packages.android.content.ContentResolver;
  12.     var Uri = Packages.android.net.Uri;

  13.     // 获取当前上下文的内容解析器
  14.     var contentResolver = context.getContentResolver();

  15.     // 指定短信内容的URI
  16.     var smsUri = Uri.parse("content://sms/inbox");

  17.     // 创建一个大小为4的字符串数组,用于指定查询的字段
  18.     var projection = java.lang.reflect.Array.newInstance(java.lang.String, 4);
  19.     projection[0] = "_id";      // 短信ID
  20.     projection[1] = "address";  // 短信发送者地址
  21.     projection[2] = "date";     // 短信发送日期
  22.     projection[3] = "body";     // 短信内容

  23.     // 按照日期降序排列
  24.     var sortOrder = "date DESC";


  25.     // 查询短信内容
  26.     var cursor = contentResolver.query(smsUri, projection, null, null, sortOrder);


  27.     // 检查游标是否有效并移动到第一条记录
  28.     if (cursor != null && cursor.moveToFirst()) {
  29.         // 获取发送者地址和短信内容的索引
  30.         var addressIndex = cursor.getColumnIndex("address");
  31.         var bodyIndex = cursor.getColumnIndex("body");

  32.         // 获取发送者地址和短信内容
  33.         var address = cursor.getString(addressIndex);
  34.         var body = cursor.getString(bodyIndex);


  35.         // 返回短信的发送者和内容
  36.         return ("From: " + address + ", Content: " + body);


  37.         cursor.close(); // 关闭游标
  38.     } else {
  39.         // 如果没有找到短信,返回提示信息
  40.         return ("No SMS found.");
  41.     }
  42. }


  43. // 调用函数,获取最新的短信内容并打印
  44. printl(readLatestSms());


  45. // 获取短信内容
  46. let smsContent = readLatestSms();
  47. // 打印短信内容
  48. printl(smsContent);


  49. // 定义正则表达式,用于匹配验证码(假设验证码在特定格式的短信中)
  50. let regex = /【新浪】(\d+)/;
  51. // 执行正则表达式匹配
  52. let match = regex.exec(smsContent);


  53. // 如果找到了匹配的验证码
  54. if (match) {
  55.     let captchaCode = match[1]; // 提取验证码
  56.     printl("验证码是:", captchaCode); // 打印验证码
  57. } else {
  58.     printl("未能找到验证码"); // 如果未找到,打印提示信息
  59. }
复制代码

以下是代码的详细说明:

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[0] = "_id";      // 短信ID
projection[1] = "address";  // 短信发送者地址
projection[2] = "date";     // 短信发送日期
projection[3] = "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[1];
    printl("验证码是:", captchaCode);
} else {
    printl("未能找到验证码");
}


定义了一个正则表达式,用于匹配特定格式的短信中的验证码。如果找到匹配的验证码,则提取并打印出来;否则,打印提示信息。

总结
这段代码的主要功能是从Android设备的短信收件箱中读取最新的短信,并通过正则表达式提取出验证码。代码使用了Android的ContentResolver和Uri类来访问短信数据,并通过正则表达式匹配特定的短信格式来提取验证码。






欢迎光临 B2B网络软件 (http://bbs.niubt.cn/) Powered by Discuz! X3.2