2012-02-29 14 views
3

私がしようとしているのは、別の電話機にSMSを送信し、SMSが配信されているかどうかを確認することです。 これで、smsが送信されたという確認だけが動作します。だから私はメッセージが送られてきたが、私は何も得られない。 2つのエミュレータを使ってテストしていますが、問題はないと思います。 Unfortunetly私はandoid瞬間に携帯電話を持っていない:(私のコードは次のようになりAndroid:エミュレータでSMS配信確認を受信して​​いません

"SMS Messaging in Android"-tutorial on mobiforge.comによると

private void sendSms(String txt, String phone){ 
     PendingIntent sentPI = PendingIntent.getBroadcast(act, 0, new Intent(SENT), 0); 
     PendingIntent deliveredPI = PendingIntent.getBroadcast(act, 0, new Intent(DELIVERED), 0); 

     //---when the SMS has been sent--- 
     act.registerReceiver(new BroadcastReceiver(){ 
      @Override 
      public void onReceive(Context arg0, Intent arg1) { 
       switch (getResultCode()) 
       { 
        case Activity.RESULT_OK: 
         Toast.makeText(act, "SMS sent", 
           Toast.LENGTH_SHORT).show(); 
         break; 
        case SmsManager.RESULT_ERROR_GENERIC_FAILURE: 
         Toast.makeText(act, "Generic failure", 
           Toast.LENGTH_SHORT).show(); 
         break; 
        case SmsManager.RESULT_ERROR_NO_SERVICE: 
         Toast.makeText(act, "No service", 
           Toast.LENGTH_SHORT).show(); 
         break; 
        case SmsManager.RESULT_ERROR_NULL_PDU: 
         Toast.makeText(act, "Null PDU", 
           Toast.LENGTH_SHORT).show(); 
         break; 
        case SmsManager.RESULT_ERROR_RADIO_OFF: 
         Toast.makeText(act, "Radio off", 
           Toast.LENGTH_SHORT).show(); 
         break; 
       } 
      } 
     }, new IntentFilter(SENT)); 

     //---when the SMS has been delivered--- 
     act.registerReceiver(new BroadcastReceiver(){ 
      @Override 
      public void onReceive(Context arg0, Intent arg1) {    
       switch (getResultCode()) 
       { 
        case Activity.RESULT_OK: 
         Toast.makeText(act, "SMS delivered", 
           Toast.LENGTH_SHORT).show(); 
         break; 
        case Activity.RESULT_CANCELED: 
         Toast.makeText(act, "SMS not delivered", 
           Toast.LENGTH_SHORT).show(); 
         break;       
       } 
      } 
     }, new IntentFilter(DELIVERED));   

     SmsManager sms = SmsManager.getDefault(); 
     sms.sendTextMessage(phone, null, txt, sentPI, deliveredPI); 
    } 

答えて

6

、配信ステータスレポートは、エミュレータでは動作しません。

エミュレータを使用したテストでは、SMSが正常に配信されたときに「SMS配​​信済み」というメッセージは表示されず、実際の状態でのみ動作しますデバイス。

+0

どのように哀れなブージァ! – ruben

+0

リンクが死んでいる – joao2fast4u

+1

だからこそ私は記事の関連部分、@ joao2fast4u – msal

関連する問題