2016-12-22 5 views
6

SMS SMSメッセージを送信するためにAndroid SmsManagerのAPI sendDataMessageを使用していましたが、動作が異なるデバイスから変更されているように見えました。SmsManager SendDataMessage in Android

私は携帯電話のデータを携帯データは をオフになっている場合にのみNexus6pに

  • オンになっている場合は、すべてのデバイス(ネクサス6P、Nexus6、Nexus5)で正常に

    1. メッセージを送信することができています

    私の質問:

    1. 発生した内部的な変更はありますか?このデバイス固有/キャリア固有かAPI固有か
    2. sendDataMessageと使用する通信チャネルのsendTextMessageとの違いは何ですか?
    3. APIに送信されたbyte []データは7ビットエンコードする必要がありますか?
  • +0

    SIMカードのSMS残高を確認してください... – Nithinlal

    答えて

    1

    通常(テキスト)SMSメッセージは、セルラネットワーク制御チャネルを介して送信されます。 http://computer.howstuffworks.com/e-mail-messaging/sms.htm

    sendDataMessageを使用すると、セルデータチャネルを送信していることになります。これは、音声および制御チャネルとは別のものです。そのため、セルデータがオフのときは何も送信されません。

    エンコーディングは、言語と、テキストかデータかによって異なります。この記事の「メッセージサイズ」を参照してください。https://en.wikipedia.org/wiki/Short_Message_Service

    SMSは複雑です。あなたはTwilioのようなソリューションプロバイダーをあなた自身ではなく見ることができます。

    +3

    私はあなたが正しいとは思わないです。 sendDataMessageはポートベースのSMSを使用しています。このIIRCはSMSチャネルを介して送信され、データ接続は必要ありません。それはしばらくしていましたが、私は2000年代半ばにいくつかのアプリを使用していましたが、データ接続がなくてもそのまま使いました。 –

    +0

    @GabeSechanこれをさらに見ると、どちらも正しいと思われます。いくつかの情報源は、データ・メッセージがセル・データ・チャネルを介して送信されることを確認します。他の人は、データがテキストと同じチャネルで送信されることがありますが、プロトコルが追加されていることを示しています。 Androidベースソースには、この2番目のテクニックへの参照が少なくともいくつかあります。私が見つけた参照のいくつか:http://android.stackexchange.com/questions/9108/what-is-a-data-sms http://www.gsm-modem.de/sms-pdu-mode.html http://www.androidauthority.com/what-is-sms-280988/ – Hod