2013-03-25 112 views
0
  1. 我開發一個Android應用程序,我需要發送一條消息給 在同一時間。但問題是隻有一個 仿真器接收message.Here接收多個模擬器是我的代碼。在時間上發送多個模擬器短信

    公共類SMS延伸活動 {

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
        super.onCreate(savedInstanceState); 
    
        setContentView(R.layout.main); 
    
        btnSendSMS = (Button) findViewById(R.id.btn_SendSms); 
    
        txtPhoneNo = (EditText) findViewById(R.id.edittext_PhoneNumber); 
    
        txtMessage = (EditText) findViewById(R.id.edittext_MessageBody); 
    
        btnSendSMS.setOnClickListener(new View.OnClickListener() 
    
        { 
         public void onClick(View v) 
    
         {     
          String message = txtMessage.getText().toString(); 
    
          String phoneNo = txtPhoneNo.getText().toString(); 
    
          StringTokenizer st=new StringTokenizer(phoneNo,","); 
    
          while (st.hasMoreElements()) 
    
          { 
           String tempMobileNumber = (String)st.nextElement(); 
    
           if(tempMobileNumber.length()>0 && message.trim().length()>0) 
    
           { 
            sendSMS(tempMobileNumber, message); 
           } 
    
           else 
    
           { 
            Toast.makeText(getBaseContext(), 
    
              "Please enter both phone number and message.", 
    
              Toast.LENGTH_SHORT).show(); 
           } 
          } 
    
         } 
        }); 
    
    } 
    
    
    private void sendSMS(String phoneNumber, String message) 
    
    { 
        String SENT = "SMS_SENT"; 
    
        String DELIVERED = "SMS_DELIVERED"; 
    
        PendingIntent sentPI = PendingIntent.getBroadcast(this, 0, new Intent(SENT), 0); 
    
        PendingIntent deliveredPI = PendingIntent.getBroadcast(this, 0, new Intent(DELIVERED), 0); 
    
        //---when the SMS has been sent--- 
        registerReceiver(new BroadcastReceiver() 
    
        { 
         @Override 
         public void onReceive(Context arg0, Intent arg1) 
    
         { 
          switch (getResultCode()) 
    
    
          { 
    
           case Activity.RESULT_OK: 
    
    
            Toast.makeText(getBaseContext(), "SMS sent", 
    
              Toast.LENGTH_SHORT).show(); 
            break; 
    
           case SmsManager.RESULT_ERROR_GENERIC_FAILURE: 
    
    
            Toast.makeText(getBaseContext(), "Generic failure", 
    
              Toast.LENGTH_SHORT).show(); 
    
            break; 
    
           case SmsManager.RESULT_ERROR_NO_SERVICE: 
    
            Toast.makeText(getBaseContext(), "No service", 
    
              Toast.LENGTH_SHORT).show(); 
            break; 
    
           case SmsManager.RESULT_ERROR_NULL_PDU: 
    
            Toast.makeText(getBaseContext(), "Null PDU", 
    
              Toast.LENGTH_SHORT).show(); 
            break; 
    
           case SmsManager.RESULT_ERROR_RADIO_OFF: 
    
            Toast.makeText(getBaseContext(), "Radio off", 
    
              Toast.LENGTH_SHORT).show(); 
            break; 
          } 
         } 
        } , new IntentFilter(SENT)); 
    
    
    
        SmsManager sms = SmsManager.getDefault(); 
    
        sms.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI);  
    } 
    
    } 
    

回答

0

要發送SMS消息到同一機器上運行的另一個仿真器實例,啓動SMS應用。指定目標模擬器實例的控制檯端口號(例如:5555)作爲SMS地址。

請注意,這個答案是基於:Linuxtopia指南。

0

您可以創建仿真器ID或編號的數組,然後將sendTextMessage插入到執行該循環的許多元素到數組中。或者您可以有UI,允許用戶將電話號碼或模擬器號碼插入到列表中,並按照上述相同的步驟進行操作! 注意sendTextMessage單曲第一說法是「電話號碼」您要發送短信 只需用您的要求爲每一個重複循環替換誰