Android中的SmsManager SendDataMessage

Chr*_*ris 6 sms android

我正在使用Android SmsManager提供的API sendDataMessage来发送短信,并注意到这种行为似乎从不同的设备发生了变化,这是我的观察.

我能够成功发送消息

  1. 在所有设备(Nexus 6p,Nexus6,Nexus5)上,如果启用了蜂窝数据
  2. 仅在关闭蜂窝数据时才能在Nexus6p上显示

我的问题:

  1. 是否有任何内部变化?此设备是特定的/运营商特定的还是API特定的?
  2. 对于使用的通信通道,sendDataMessage与sendTextMessage的不同之处是什么?
  3. 发送到API的byte []数据是否需要进行7位编码?

Hod*_*Hod 1

常规(文本)SMS 消息通过蜂窝网络控制通道发送。您可以在这里阅读有关具体情况的详细描述: http: //computer.howstuffworks.com/e-mail-messaging/sms.htm

当您使用 时sendDataMessage,您将通过手机数据通道发送数据。这与语音和控制通道是分开的。这就是为什么当手机数据关闭时不会发送任何内容。

编码取决于语言以及它是文本还是数据。请参阅本文中的“消息大小”:https ://en.wikipedia.org/wiki/Short_Message_Service

短信很复杂。您可能想要寻找像 Twilio 这样的解决方案提供商,而不是自己动手。

  • 我不认为你是对的。sendDataMessage 仅使用基于端口的 SMS,IIRC 仍通过 SMS 通道发送,不需要数据连接。已经有一段时间了,但我在 2000 年代中期就用过它来开发一些应用程序,即使没有数据连接,它们也能正常运行。 (3认同)