HarmonyOS 鸿蒙Next中如何监听短信接收事件?
HarmonyOS 鸿蒙Next中如何监听短信接收事件? 想在app内监听用户收到的手机短信,针对短信包含特定关键词的进行处理。 但找文档似乎没有相关的内容。
5 回复
【背景知识】
- 全量短信读取权限目前属于系统受限权限,为保护消费者隐私不提供给第三方应用申请。
- 目前系统是支持自动复制短信内验证码的,小艺输入法支持自动提取验证码,会在输入法软键盘候选词栏显示。
【解决方案】
应用可以读取用户指定授权的短信,可以参考受限开放权限ohos.permission.USE_FRAUD_MESSAGES_PICKER,该权限允许应用使用诈骗短信选择器,获取短信内容。可申请此权限的特殊场景与功能:
- 仅提供给反诈类应用使用。
- 面向合作企业开放,仅在允许名单内的固定应用可申请该权限,如需进入允许名单,请联系企业技术支持。
更多关于HarmonyOS 鸿蒙Next中如何监听短信接收事件?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
我直接给你一杵子。还想监听我短信?想屁吃吧,
好家伙,你是不是都不看鸿蒙发布会? 鸿蒙的安全是第一位的。第一位!怎么可能让第三方APP接管短信!
在HarmonyOS Next中监听短信接收事件,需使用@ohos.telephony.sms
模块。通过sms.on('messageReceived')
方法注册监听器,回调函数可获取接收的短信内容及发送方信息。需在module.json5
配置文件中声明ohos.permission.RECEIVE_SMS
权限。监听器需及时调用sms.off()
取消注册以避免资源占用。
在HarmonyOS Next中,监听短信接收事件可以通过订阅系统事件实现。具体步骤如下:
- 使用
@ohos.notification
模块的subscribe
方法订阅commonEvent.SMS_RECEIVED
事件。 - 在回调函数中处理接收到的短信内容,通过
CommonEventData
获取短信数据。 - 使用正则表达式或字符串匹配方法筛选包含特定关键词的短信。
示例代码:
import commonEvent from '@ohos.commonEventManager';
commonEvent.subscribe('usual.event.SMS_RECEIVED', (err, data) => {
if (err) {
console.error('订阅失败');
return;
}
const message = data.parameters?.message; // 获取短信内容
if (message && message.includes('特定关键词')) {
// 处理逻辑
}
});
注意:需要申请ohos.permission.RECEIVE_SMS
权限,并在module.json5
中声明。