如何在 iOS 上以编程方式读取传入的短信

问题描述 投票:0回答:5

关于如何以编程方式访问存储在 iPhone 中的 SMS 消息,存在大量问题。做一个小研究,你很快就会悲伤地发现,由于明显的安全原因,Apple 不会让我们的开发人员接触 SMS API 或 SMS 数据库。让我们暂时分开这个事实。

我拥有一辆宝马汽车,它配备了名为 iDrive 的出色“信息娱乐”系统。就在最近,我意识到当我的 iPhone 连接到 USB 时,我实际上可以通过 iDrive 系统读取传入的短信。这真的引起了我的兴趣。在研究了汽车和手机配置后,我终于发现 iDrive 实际上是在显示来自通知中心的短信。这意味着每次我收到新消息时,它都会在锁定屏幕中显示为通知,并且汽车将能够访问它,因为通知中心具有公共 API。当我从通知中删除消息应用程序后,我什么也没得到。

正如你们许多人之前所想的那样,我还想创建一个应用程序,可以监视传入的短信并根据从消息正文扫描的关键字采取一些操作。

直到现在,我真的很倾向于转向 Android,以便让自己获得自由,但是,看着汽车显示传入的短信让我看到了隧道尽头的一些曙光。

有人知道如何构建一个可以从通知中心读取条目的 iOS 应用程序吗?我尝试了一些研究,但这似乎是一个非常广泛的问题,很难找到 iOS 通知中心的具体文档。

我应该提到,我不是一位经验丰富的 iOS 开发人员,因此我们将非常感谢您的帮助。

顺便说一句 - 我永远无法理解苹果官方文档支持。找到正在运行的应用程序的完整示例有点令人困惑。

感谢您的帮助。 法比奥

更新:已经是 2021 年了,Apple 即将发布 iOS 15,但我们仍然没有允许访问 SMS 数据库的 API。

ios sms notificationcenter
5个回答
12
投票

在 iOS 12 中,Apple 提供了读取SMS(OTP 密码)的选项

如果系统可以从短信中解析安全码,则 QuickType 栏在输入代码后最多会显示代码三分钟 已收到。如果在文本输入视图处于打开状态时安全代码到达 选择后,系统会将传入的代码推送到 QuickType 栏。

要测试不同语言的短信代码格式,请发送短信 给自己留言。如果您收到带有下划线的消息 安全码,点击该代码。如果出现复制代码选项, 系统已识别您的代码。

iOS 支持 UITextField、UITextView 和任何内容上的密码自动填充 采用 UITextInput 协议的自定义视图。

您可以从单因素短信登录流程中自动完成安全代码

以编程方式

yourTextField.textContentType = .oneTimeCode

故事板/XIB

在storyboard/XIB中选择UITextField/UITextView,点击Click on 属性检查器。转到文本输入特征,单击内容类型,然后 选择一次性代码并完成。

实施前请确认

  • 如果您对安全代码输入文本字段使用自定义输入视图, iOS 无法显示必要的自动填充 UI。
  • 它仅适用于系统键盘。所以避免使用自定义 键盘。

4
投票

Apple 的 MFi 程序允许在主机上安装芯片

Bridge API 提供将通知或消息、通话记录等传递到连接的设备(这通过闪电、30 针和蓝牙工作)

可以通过在通知设置中切换应用程序来禁用此通知中心访问。

到目前为止,应用程序中的操作无法通过任何已发布的 API 来实现


4
投票

可以从notification tra中读取数据,苹果Notification manager库是开放的,我们可以实现它。 只需阅读收到短信的每条通知,如果找到匹配,则启动您的功能


2
投票

官方 SDK 无法实现

您只能检查状态是否发生变化。 所以基本上如果您收到通知


0
投票

有可能

也许有人为了大钱而隐藏这些知识。 我使用过 mSpy,我可以阅读用户收件箱中的所有消息,包括通知,一切。

© www.soinside.com 2019 - 2024. All rights reserved.