【问题标题】:Send sms programmatically on iphone在 iphone 上以编程方式发送短信
【发布时间】:2014-05-09 23:51:28
【问题描述】:

我在 stacoverflow 上看到了其他问题,例如 thisthis,但没有一个适用于 iOS 7。 我想在没有 MFMessageComposeViewController 或 twilio 等其他服务的情况下发送短信。 有人可以帮我吗?

【问题讨论】:

  • 这个stackoverflow.com/questions/15872553/… 适用于iOS 7,我自己使用它,cmets 中的Shabi Tech 确认它可以正常工作。如果它不适合你,那你就做错了。
  • 我有这个错误:: mms: 无法发送消息,收到错误:35" AND ": mms: error sent message: 35" ... Shabi Tech 相同...
  • 我要说的是我的解决方案有效。问题出在其他地方。在 Shabi Tech 的案例中,电话号码是错误的。
  • 我在数字前使用 nsstring 作为 toAddress 和国际代码(我也试过没有它,但结果相同),对于 serviceCenter 使用 nil。权利没问题...我该怎么办?
  • @creker 可以在与 Shabi Tech 的对话中链接我的问题吗?因为我无法解决问题:(。谢谢

标签: ios iphone xcode sms jailbreak


【解决方案1】:

这是一个示例项目 sendspace.com/file/i6s6j7 在带有 iOS 7.0.4 的 iPhone 5 上对其进行了测试。您需要注意一件事 - “运行脚本”构建阶段。这是签署应用程序的地方。我使用了codesign,这可能不适合你。

在徽标调整的情况下,您无法使用所需的任何权利对调整进行签名。您的代码将使用并且仅限于您正在挂钩的应用程序的权利。如果是 SpringBoard,那么缺少 com.apple.CommCenter.Messages-send 的就是 SpringBoard 的权利。因此,对于 SpringBoard 调整,我使用 CTMessageCenter 的解决方案将不起作用。但我的答案here 中的 XPC 解决方案将起作用。不幸的是,使用 XPC 发送的 SMS 将显示在 SMS 数据库中。

有两种可能的解决方案:

  1. 守护进程。您可以使用任何您想要的权利来签署它,并且几乎可以做任何您想做的事情。
  2. 写一个调整到另一个守护进程,只是为了发送短信。可能的候选人 - com.apple.imagent 位于 /System/Library/PrivateFrameworks/IMCore.framework/imagent.app/imagent。它签署了我们发送 SMS 所需的所有权利,这很明显,因为这个守护进程处理较低级别的 SMS。它会观察传入的 SMS 通知、我的答案中的 XPC 呼叫以及其他与即时消息相关的内容。

【讨论】:

  • 感谢 creker 我使用了第一个解决方案,效果非常好!你是我的英雄!
猜你喜欢
  • 1970-01-01
  • 2011-04-09
  • 2010-09-05
  • 1970-01-01
  • 2011-04-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多