Android中的SmsManager SendDataMessage

时间:2016-12-22 23:09:04

标签: android sms

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

我能够成功发送消息

  1. 如果启用了细胞数据,则在所有设备(Nexus 6p,Nexus6,Nexus5)上
  2. 仅在关闭手机数据时,在Nexus6p
  3. 我的问题:

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

1 个答案:

答案 0 :(得分:1)

常规(文本)SMS消息通过蜂窝网络控制信道发送。你可以在这里阅读一个很好的描述:http://computer.howstuffworks.com/e-mail-messaging/sms.htm

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

编码取决于语言以及文本与数据之间的关系。请参阅本文中的“邮件大小”:https://en.wikipedia.org/wiki/Short_Message_Service

短信很复杂。您可能希望查看像Twilio这样的解决方案提供商而不是自己动手。