HarmonyOS 鸿蒙Next如何监听新收到的短信,并从短信中获取验证码,然后填充到TextInput中?

发布于 1周前 作者 gougou168 来自 鸿蒙OS

HarmonyOS 鸿蒙Next如何监听新收到的短信,并从短信中获取验证码,然后填充到TextInput中?

如何监听新收到的短信,并从短信中获取验证码,然后填充到TextInput中?

3 回复
1、出于安全隐私性原则,无法监听获取用户短信内容

2、目前系统是支持自动复制短信内验证码的,小艺输入法支持自动提取验证码,会在输入法软键盘候选词栏显示

3、验证码填充到页面的实现可参考案例:https://gitee.com/harmonyos_samples/verification-code-scenario

更多关于HarmonyOS 鸿蒙Next如何监听新收到的短信,并从短信中获取验证码,然后填充到TextInput中?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


这个是很实际的需求。很多人需要的。官方因为不安全,不做这功能。用户就会去找第三方的应用,更加不安全。

在HarmonyOS 鸿蒙Next中,监听新收到的短信并从中提取验证码填充到TextInput,可以通过以下步骤实现:

  1. 申请权限:首先,需要在config.json文件中声明短信读取权限,如ohos.permission.READ_SMS

  2. 注册短信广播接收器:创建一个广播接收器类,继承自BroadcastReceiver,并重写onReceive方法。在该方法中,解析短信内容,提取验证码。

  3. 动态注册接收器:在应用的入口Activity或Service中,动态注册上述创建的广播接收器,监听短信到达的广播(通常为android.provider.Telephony.SMS_RECEIVED,但注意鸿蒙可能有特定广播)。

  4. 填充验证码:在广播接收器的onReceive方法中,获取当前Activity的实例(可能需要通过某种机制传递或持有Activity的弱引用),然后找到对应的TextInput组件,并设置其文本为提取到的验证码。

示例代码(伪代码,具体实现需根据鸿蒙API调整):

// 伪代码示例,具体实现需参考鸿蒙API文档
class SmsReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        // 解析短信,提取验证码
        String code = extractCodeFromSms(intent);
        // 获取Activity实例,填充验证码到TextInput
        activityInstance.findViewById(R.id.textInput).setText(code);
    }
}

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部