2

クライアントアプリからSMSを受信し、それに対して何らかの操作を実行し、データをサーバーにアップロードするSMSゲートウェイアプリケーションを開発しています。

クライアント アプリから、メッセージの長さが 160 文字を超えると、メソッドsendMultipartTextMessageを使用してメッセージを分割した後に実行します。divideMessageただし、メッセージが SMS ゲートウェイ デバイスで受信されると、 はコールごとに 1 つのPDUのみonReceiveを取得し、同じ SMS の異なる部分が異なる SMS として受信されます。BroadcastReceiver

マルチパートSMSの受信を有効にする設定はありますか? ゲートウェイに Huawei u8150 Helios デバイスを使用しています。デバイスをルート化しました。必要に応じてシステム設定を変更できます。

前もって感謝します。

4

1 に答える 1

0

私がこの問題をどのように解決したかを探している人のために、これは私がしたことです:

送信者:

  • 組み込みのを使用する代わりに、を返すdivideMessage独自のを作成しました。この場合、各要素にはプレフィックスがあり、長さは<= 150(経験的に見つかった数値)です。divideMessageArrayList<String>
  • ArrayList<String>ビルトインを使用して、上記で取得したメッセージを送信しsendMultipartTextMessageます。

受信者:

  • メッセージのプレフィックスを取得し、メッセージをローカルデータベースに保存します。
  • プレフィックスから、他のすべてのパーツが到着したかどうかを確認します。はいの場合、すべてのパーツをマージして処理します。

注:プレフィックスに含まれる内容とすべての部分がどのようにマージされるかは、この説明の範囲外です。

于 2011-09-16T22:07:30.027 に答える