TQC-307 簡訊互傳

TQC-307 簡訊互傳

這是TQC的307題,

程式碼為自行撰寫,

僅供參考。

 

主要練習傳送簡訊,

而測試時需同時開二個AVD,

一傳一收。

 




    
    
        
            
                
                
            
        

    
    


 

 




  
  
  
  
  
  
  
  
  
  

 

 


package COM.TQC.GDD03;

import java.util.ArrayList;

import android.app.Activity;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.telephony.TelephonyManager;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class GDD03 extends Activity
{
  private Button mButton1;
  private EditText mEditText1, mEditText2;
    
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState)
  {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    
    findview();
    setlisenter();
   
    
    
    
   
  }
  
  public void findview()
  {
	  /* Phone No. */
	    mEditText1 = (EditText) findViewById(R.id.myEditText1);
	    
	    /* SMS BODY */
	    mEditText2 = (EditText) findViewById(R.id.myEditText2);
	    mButton1 = (Button) findViewById(R.id.myButton1);
	    
	    mEditText1.setText("5556");
	    mEditText2.setText("DAVID_SEND");
  }
  
  public void setlisenter()
  {
	  mButton1.setOnClickListener(new Button.OnClickListener()
	    {
	      @Override
	      public void onClick(View v)
	      {
	        // TODO Auto-generated method stub
	    	  String phoneNo = mEditText1.getText().toString();  
	          String message = mEditText2.getText().toString();  
	          if (phoneNo.length() > 0 && message.length() > 0){  
	              //call sendSMS to send message to phoneNo  
	              sendSMS(phoneNo, message);  
	          }  
	          else 
	              Toast.makeText(getBaseContext(),  
	                  "Please enter both phone number and message.",  
	                  Toast.LENGTH_SHORT).show(); 
	      }
	    });
	  
	  
	  
  }
  
  public class mServiceReceiver extends BroadcastReceiver
  {
    @Override
    public void onReceive(Context context, Intent intent)
    {
      // TODO Auto-generated method stub
    	  if(intent.getAction() != null)
          {
                  if(intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED) ||
                      intent.getAction().equals(Intent.ACTION_USER_PRESENT))
                  {
                          context.startService(new Intent(context, GDD03.class));
                  }
          }

    }
  }
  
  @Override
  protected void onResume()
  {
    // TODO Auto-generated method stub
    super.onResume();
  }
  
  @Override
  protected void onPause()
  {
    // TODO Auto-generated method stub
    super.onPause();
  }
  
  private void sendSMS(String phoneNumber, String message) {  
	  
	  SmsManager sms = SmsManager.getDefault();  
	    String SENT_SMS_ACTION = "SENT_SMS_ACTION";  
	    String DELIVERED_SMS_ACTION = "DELIVERED_SMS_ACTION";  
	 
	    // create the sentIntent parameter  
	    Intent sentIntent = new Intent(SENT_SMS_ACTION);  
	    PendingIntent sentPI = PendingIntent.getBroadcast(this, 0, sentIntent,  
	            0);  
	 
	    // create the deilverIntent parameter  
	    Intent deliverIntent = new Intent(DELIVERED_SMS_ACTION);  
	    PendingIntent deliverPI = PendingIntent.getBroadcast(this, 0,  
	            deliverIntent, 0);  
	 
	    // register the Broadcast Receivers  
	    registerReceiver(new BroadcastReceiver() {  
	        @Override 
	        public void onReceive(Context _context, Intent _intent) {  
	            switch (getResultCode()) {  
	            case Activity.RESULT_OK:  
	                Toast.makeText(getBaseContext(),  
	                        "SMS sent success actions", Toast.LENGTH_SHORT)  
	                        .show();  
	                break;  
	            case SmsManager.RESULT_ERROR_GENERIC_FAILURE:  
	                Toast.makeText(getBaseContext(),  
	                        "SMS generic failure actions", Toast.LENGTH_SHORT)  
	                        .show();  
	                break;  
	            case SmsManager.RESULT_ERROR_RADIO_OFF:  
	                Toast  
	                        .makeText(getBaseContext(),  
	                                "SMS radio off failure actions",  
	                                Toast.LENGTH_SHORT).show();  
	                break;  
	            case SmsManager.RESULT_ERROR_NULL_PDU:  
	                Toast.makeText(getBaseContext(),  
	                        "SMS null PDU failure actions", Toast.LENGTH_SHORT)  
	                        .show();  
	                break;  
	            }  
	        }  
	    }, new IntentFilter(SENT_SMS_ACTION));  
	    registerReceiver(new BroadcastReceiver() {  
	        @Override 
	        public void onReceive(Context _context, Intent _intent) {  
	            Toast.makeText(getBaseContext(), "SMS delivered actions",  
	                    Toast.LENGTH_SHORT).show();  
	        }  
	    }, new IntentFilter(DELIVERED_SMS_ACTION));  
	 
	    // if message's length more than 70 ,  
	    // then call divideMessage to dive message into several part ,and call  
	    // sendTextMessage()  
	    // else direct call sendTextMessage()  
	    if (message.length() > 70) {  
	        ArrayList msgs = sms.divideMessage(message);  
	        for (String msg : msgs) {  
	            sms.sendTextMessage(phoneNumber, null, msg, sentPI, deliverPI);  
	        }  
	    } else {  
	        sms.sendTextMessage(phoneNumber, null, message, sentPI, deliverPI);  
	    }  
    
  } 
}

 

 

自我LV~