2012-02-15 18 views
0

SMSを受信し、同じSMSを送信者に返信する次のコードを記述しました。 コードはエミュレータで完全に実行されていますが、モバイルでコードを実行するとSMSは送受信されません。アプリケーションはSMSを送受信しません

public class SmsReceiver extends BroadcastReceiver 
{ 
    public void onReceive(final Context context, Intent intent) 
    { 
     //---get the SMS message passed in--- 
     Bundle bundle = intent.getExtras();   
     SmsMessage[] msgs = null; 

     String messageRecieved ="";  
     String result=""; 
     if (bundle != null) 
     { 
     //---retrieve the SMS message received--- 
     Object[] pdus = (Object[]) bundle.get("pdus"); 
     msgs = new SmsMessage[pdus.length];    
     for (int i=0; i<msgs.length; i++) 
     { 
      msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);     
      messageRecieved += msgs[i].getMessageBody().toString(); 
     } 

     //---display the new SMS message--- 
     Toast.makeText(context, "Sms Recieved: "+messageRecieved, 
       Toast.LENGTH_SHORT).show(); 

     sms.sendTextMessage(sendersPhoneNumber, null, messageRecieved, null, null); 
     Toast.makeText(context, "Sms sent back to Sender With Requested Contacts" 
      ,Toast.LENGTH_LONG).show(); 

私はマニフェストに適切な許可を与えて受信者を登録しました。 エミュレータでは正常に動作しますが、電話機では正常に動作しません。

トーストは表示されません。

+0

これは役に立ちます[http://mobiforge.com/developing/story/sms-messaging-android](http://mobiforge.com/developing/story/sms-messaging-android) – NagarjunaReddy

+0

まだそれはありません作業 –

+0

ネイティブのアンドロイドメッセージングアプリを使用している携帯電話ですか、または他のサードパーティのアプリケーションを介して送信されたメッセージですか?それが第三者アプリケーションである場合、メッセージはコンテンツプロバイダをバイパスします。したがって、放送受信機は動作しません。 – user936414

答えて

0

実際のデバイスの問題は、メモリの問題が少ない可能性があります。携帯電話に大きなアプリをインストールしているか、メモリが足りなくなっています。 SMSは約20〜30 KBのみであることはわかっていますが、SMSを受信するためには、電話機に20 MB以上のスペースが必要になることがあります。

この問題の解決方法は、電話機のメモリからSDカードにデータを移動することです。

関連する問題