2015-06-01 117 views
0

我正在寫一個應用程序,收到短信請求後發送手機位置。接收短信的作品和發送短信的作品。如何在收到短信後發送短信?Android:收到短信之後發送短信

MainActivity

final static String gpsLocationProvider = LocationManager.GPS_PROVIDER; 
final static String networkLocationProvider = LocationManager.NETWORK_PROVIDER; 
static String loc; 
public LocationManager locationManager; 
static TextView messageBox; 


public void sendSMS(String phoneNumber, String message) 
{ 
     PendingIntent pi = PendingIntent.getActivity(this, 0, 
       new Intent(this, MainActivity.class), 0); 
     SmsManager sms = SmsManager.getDefault(); 
     sms.sendTextMessage(phoneNumber, null, message, pi, null); 
} 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    messageBox = (TextView)findViewById(R.id.messageBox); 

    locationManager = 
      (LocationManager) this.getSystemService(Context.LOCATION_SERVICE); 
    Location lastKnownLocation_byGps = 
      locationManager.getLastKnownLocation(gpsLocationProvider); 
    Location lastKnownLocation_byNetwork = 
      locationManager.getLastKnownLocation(networkLocationProvider); 

    if (lastKnownLocation_byGps != null) { 
     loc = "gps " + lastKnownLocation_byGps.getLatitude(); 
    } 
    if (lastKnownLocation_byNetwork != null) { 
     loc = "net lat:" + lastKnownLocation_byNetwork.getLatitude() + " long:" + lastKnownLocation_byNetwork.getLongitude(); 
    } 
} 

public static void updateMessageBox(String msg) { 
    messageBox.setText(msg); 
} 

接收機

@Override 
public void onReceive(Context context, Intent intent) { 
    Bundle bundle=intent.getExtras(); 

    Object[] messages=(Object[])bundle.get("pdus"); 
    SmsMessage[] sms=new SmsMessage[messages.length]; 

    for(int n=0;n<messages.length;n++){ 
     sms[n]=SmsMessage.createFromPdu((byte[]) messages[n]); 
    } 

    for(SmsMessage msg:sms){ 
     MainActivity.updateMessageBox("\nFrom: "+msg.getOriginatingAddress()+"\n"+ 
       "Message: "+msg.getMessageBody()); 
    } 
} 

放在哪裏sendSMS方法接受一個後發短信?

回答

1

您可以在onReceive方法結束時調用您的發送短信代碼語句,因爲此方法在您收到短信時執行。