如何以编程方式读取iOS上的传入文本消息

时间:2015-07-24 03:09:14

标签: ios sms notificationcenter

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

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

正如您之前所想的那样,我还想创建一个可以监控传入短信的应用,并根据从邮件正文中扫描的关键字采取一些措施。

到现在为止,为了让我自由,我真的倾向于转向Android,但是,看着显示传入短信的汽车让我在隧道尽头看到了一些亮光。

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

我应该提一下,我不是一位经验丰富的iOS开发人员,所以任何帮助都将非常感激。

BTW - 无论如何,我永远无法理解Apple官方文档支持。有点难以找到正在运行的应用程序的完整示例。

感谢您的帮助。 法比奥

4 个答案:

答案 0 :(得分:4)

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

  

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

     

要测试不同语言的SMS代码格式,请输入文本   给自己的讯息。如果您收到带有下划线的消息   安全密码,点击密码。如果出现“复制代码”选项,则   系统已识别您的代码。

     

iOS在UITextField,UITextView和任何其他版本上支持密码自动填充   采用UITextInput协议的自定义视图。

您可以通过单因素SMS登录流程自动完成安全代码

以编程方式

yourTextField.textContentType = .oneTimeCode

故事板/ XIB

  

在情节提要/ XIB中选择UITextField / UITextView,然后单击   属性检查器。转到文本输入特征,单击“内容类型”,然后   选择一次性代码并完成。

enter image description here

在实施之前,请确保

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

答案 1 :(得分:3)

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

和Bridge API提供通知或消息,呼叫日志等,到连接的设备(这适用于Lightning,30针和蓝牙)

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

通过任何已发布的API无法获得应用程序中的操作

答案 2 :(得分:2)

您可以从通知tra中读取数据,Apple Notification Manager库已打开,我们可以实现它。 只需读取传入短信的每个通知,如果找到匹配,则启动你的功能

答案 3 :(得分:1)

无法使用官方SDK

您只能检查状态是否已更改。 所以基本上如果你收到通知