|
|
- 引入Android的ContentResolver和Uri类:这部分代码通过JavaScript的Packages对象引入了Android系统中的ContentResolver和Uri类,这为后续访问短信提供了必要的API支持。
- 获取当前上下文的内容解析器:通过
context.getContentResolver()获取当前应用的ContentResolver对象,这个对象可以用来查询短信数据库。 - 指定短信内容的URI:
Uri.parse("content://sms/inbox")指定要查询的短信数据库的URI路径,这里指向的是收件箱中的短信。 - 创建查询字段数组:定义一个包含4个元素的字符串数组projection,用于指定从短信数据库中查询出哪些字段。这些字段包括短信ID、发送者地址、发送日期和短信内容。
- 设置排序规则:
var sortOrder = "date DESC";设置了查询结果的排序规则为按日期降序排列,这样读取到的第一条记录就是最新的短信。 - 执行查询操作:
contentResolver.query(...)方法用于执行查询操作,返回一个Cursor对象,这个对象包含了查询结果的所有记录。 - 处理查询结果:检查游标是否有效,并移动到第一条记录。如果有效,获取发送者地址和短信内容,并将它们作为结果返回。如果没有查询到记录,则返回"No SMS found."提示信息。最后,确保关闭游标以释放相关资源。
- 匹配验证码:通过一个正则表达式来查找短信内容中的验证码。这里假设验证码是以“【短信】”开头后跟一组数字的形式出现。使用
regex.exec(smsContent)来执行匹配操作,如果匹配成功,则提取出验证码并打印;如果未找到匹配结果,则打印"未能找到验证码"的提示信息。
/* 这个是获取手机短信的例子,
最近很多人用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[0] = "_id"; // 短信ID projection[1] = "address"; // 短信发送者地址 projection[2] = "date"; // 短信发送日期 projection[3] = "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(); // 打印短信内容 console.log(smsContent);
// 定义正则表达式,用于匹配验证码(假设验证码在特定格式的短信中) let regex = /【新浪】(\d+)/; // 执行正则表达式匹配 let match = regex.exec(smsContent);
// 如果找到了匹配的验证码 if (match) { let captchaCode = match[1]; // 提取验证码 console.log("验证码是:", captchaCode); // 打印验证码 } else { console.log("未能找到验证码"); // 如果未找到,打印提示信息 }
|
|