HarmonyOS鸿蒙Next中能不能获取短信的信息?

HarmonyOS鸿蒙Next中能不能获取短信的信息? 现在鸿蒙有可以监听获取系统短信的API吗?例如安卓的验证码直接输入到输入框。

8 回复

【背景知识】

  • 全量短信读取权限目前属于系统受限权限,为保护消费者隐私不提供给第三方应用申请。
  • 目前系统是支持自动复制短信内验证码的,小艺输入法支持自动提取验证码,会在输入法软键盘候选词栏显示。

【解决方案】

  1. 输入法键盘需要开启读取验证码的开关。
  2. 当用户使用小艺输入法时,在收到短信后,会在输入法软键盘候选词栏显示验证码,点击验证码即可完成填充。

【常见FAQ】

Q:如果不使用系统输入法,还有办法实现自动填充效果吗? A:如果希望通过其他输入法达到验证码自动读取的功能,可采用华为账号提供的通用短信验证码读取能力来实现。

Q:应用可以读取用户指定授权的短信吗? A:可以参考受限开放权限ohos.permission.USE_FRAUD_MESSAGES_PICKER,该权限允许应用使用诈骗短信选择器,获取短信内容。 可申请此权限的特殊场景与功能:

  1. 仅提供给反诈类应用使用。
  2. 面向合作企业开放,仅在允许名单内的固定应用可申请该权限,如需进入允许名单,请联系企业技术支持。

更多关于HarmonyOS鸿蒙Next中能不能获取短信的信息?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


普通三方应用无法直接监听或读取系统短信内容,包括验证码短信。这与安卓系统的自动填充机制不同,主要因为鸿蒙对用户隐私保护更严格,限制了非系统应用访问短信数据的权限。

验证码输入也只能用户进行用户进行点击键盘上面的验证码或者手动输入

这属于系统限制访问权限,能有华为官方开发的APP进行权限访问

目前系统是支持自动复制短信内验证码的,小艺输入法支持自动提取验证码,会在输入法软键盘候选词栏显示
验证码填充到页面的实现可参考案例:https://gitee.com/harmonyos_samples/verification-code-scenario

可以,

小艺输入法可以实现你所说的,但是不知道有没有api,

HarmonyOS Next中可以通过权限申请访问短信数据。系统提供@ohos.telephony.sms接口,支持读取、发送和管理短信。开发者需在module.json5中声明ohos.permission.RECEIVE_SMS权限,并在应用首次运行时动态申请。短信数据以Message实例形式返回,包含发送方、内容、时间等信息。

在HarmonyOS Next中,目前没有提供直接读取或监听系统短信的API

这与HarmonyOS Next的设计理念和隐私安全策略密切相关:

  1. 隐私保护:系统短信属于用户高度敏感的个人数据,HarmonyOS Next通过严格的权限管理和沙箱机制,禁止应用直接、无限制地访问此类核心数据,以保护用户隐私安全。
  2. 替代方案:对于“验证码自动填充”这类场景,HarmonyOS提供了更安全、标准的实现方式:
    • 验证码获取器 API:应用可以通过系统提供的验证码获取器(SMS Code Retriever) 能力。当用户授权后,系统可以安全地将验证码短信中的数字代码提取出来,并建议填充到对应的应用输入框中。这整个过程由系统控制,应用无法接触到完整的短信内容,只能在用户同意后获得特定的验证码数字。
    • 焦点监听与安全输入:对于需要自动填充的场景,应用应通过标准的输入框焦点监听和系统提供的安全输入服务来实现,而不是直接读取短信数据库。

总结:如果你需要实现类似“验证码自动填充”的功能,应使用HarmonyOS官方提供的验证码获取器等安全API,而不是寻求直接读取短信的权限。直接访问系统短信的路径在HarmonyOS Next中已被明确禁止。

回到顶部