2011-06-29 18 views
5

sendDataMessage()メソッドで問題が発生しました。SmsManagerです。データをSMS電話でAndroidに送信

2つのGSMエミュレータ間でSMSを送信すると、少なくとも部分的に動作するように見えますが、Verizon CDMA携帯電話で同じ方法を使用するとNullPointerExceptionと表示されます。

私は似たようなためbug reportへのリンクが見つかりました:それは成功するための 何のコードパスが存在しないため

は「SmsManager.sendDataMessage()は常にCDMAデバイスに障害が発生した障害はで見ることができます。無線ログ com.android.internal.telephony.cdma.sms.BearerData.encodeEmsUserDataPayload() がCodingExceptionをスローします。

しかし、誰もがCDMA携帯電話に似た 何かをする回避策を見つけたなら、私は思ったんだけど。

+1

私は今sendMessage()で解決し、メッセージに特別なタグを使用して、すべてのメッセージを傍受し、タグをチェックするかもしれないと思うが、これはむしろdo – bfly2000

+0

この問題はまだ解決しましたか?私は同じ問題を抱えており、それがプロバイダー(私の場合はVerizon Wireless)に関連する制限(またはむしろ制限)だと考える傾向があります。 – xtrem

+0

こんにちは@ bfly2000、私はこの後半に来ていますが、私は同じ問題を抱えています。これが現在までに解決されているかどうか、またラジオログをどのように入手するのかご存知ですか? – Simon

答えて

0

このコードは、GSMとCDMA私もsendDataMessage()使用していたの両方

String sms = message.getText().toString(); 

      if(PhoneNumberUtils.isWellFormedSmsAddress(dest)) 
      { 
       for(String contact:multiContact) 
       { 
        smsManager.sendTextMessage(contact, null, sms, null, null); 
        Toast.makeText(SampleSms.this, "SMS messgae Sent to"+contact, Toast.LENGTH_LONG).show(); 
       } 

      } 
      else 
      { 
       Toast.makeText(SampleSms.this, "SMS messgae Sent failed", Toast.LENGTH_LONG).show(); 
      } 

をするために正常に動作しますが、私はエラーを得ました。しかし、上記のコードはうまく動作しています

+0

私はプログラムデータを送信する特定の方法としてこれを使用しているので、私はデータSMSを送信しようとしています。これは標準的なテキストメッセージではなく、SMSメッセージングクライアントによって傍受されます。私のプログラムがSMS_RECIEVEDインテントのために高いアンドロイドを優先するように設定したとしても、私はまだ構文解析を行い、メッセージが私のプログラムのものであることを確認しなければなりません。本当の方法では本当のテキストを傍受していませんメッセージ。 – bfly2000

+0

'sendDataMessage()'にポート番号を使用しましたか?しかし、このメッセージは、 –

+0

はもちろんのこと、ポート番号なしでは動作しないとは思っていません。その理由は不明ですが、cdmaネットワークのデータsmsを模倣する方法があることを期待していました。現時点ではアンドロイドで – bfly2000

関連する問題