奇思妙想:你会有什么解决方案?

缘由

公司有的同事所用的工作手机经常用来收验证码,但同事不可能一直看手机或者总能及时回复消息,所以我就想着能不能用之前的机器人做一个统一的管理。

尝试

使用了先前的微信机器人项目,步骤如下:
1.手机为iOS,未越狱,使用快捷指令中的自动化,当检测到短信内容中包含验证码的时候,将这个短信通过微信发给机器人;
2.机器人检测到符合关键词的消息,会将整个消息统一发到指定的群聊id或者私聊id。

卡住

因为iOS16的自动化中的信息不支持后台自动化,还需要点两次……
目前还没有找到其他办法,换做是你,你会有什么奇思妙想呢?

2 Likes

嘿,siri :dotted_line_face:

我是用android手机弄的,代码如下

public class HostReceiver extends BroadcastReceiver {
    @SuppressLint("UnsafeProtectedBroadcastReceiver")
    @Override
    public void onReceive(Context context, Intent intent) {
        if ("android.provider.Telephony.SMS_RECEIVED".equals(intent.getAction())) {
            String format = intent.getStringExtra("format");
            Object[] pdus = (Object[]) Objects.requireNonNull(intent.getExtras()).get("pdus");
            if (pdus != null) {
                StringBuilder sb = new StringBuilder();
                String title = "";
                for (int i = 0; i < pdus.length; i++) {
                    SmsMessage message = SmsMessage.createFromPdu((byte[]) pdus[i], format);
                    title = message.getDisplayOriginatingAddress();
                    sb.append(message.getDisplayMessageBody());
                }
                if (!TextUtils.isEmpty(title) && sb.length() > 0) {
                    JSONObject bodyObj = new JSONObject()
                            .fluentPut("title", "短信:" + title)
                            .fluentPut("content", sb.toString());
                    new Thread(() -> sendQvMsg(bodyObj.toJSONString())).start();
                }
            }
        }
    }

太硬核了……我最后解决方案是找了一个平板支持iOS17的,开启短信转发,然后平板来用快捷指令发微信

直接安卓搞,接管短信,然后同步出来提交到服务器上,谁需要通过网页去拿

这手机号还干其他的用么,如果是专门用来收验证码的手机号,可以弄个移动设备接服务器上,自动收集收到的短信就行了。

我们也是写个应用挂在后台监听,收到验证码就转发到系统或者钉钉群