android sms不断发送

时间:2014-03-31 10:30:52

标签: android android-activity sms

您好我正在使用android。我创建了一个用于发送短信和拨打电话的应用。但问题是,短信正在不断发送。那么我怎样才能发送短信一次?请帮帮我,我是android新手。提前谢谢:)

这是我的代码

public class SendSMSActivity extends Activity {
Button btnSendSMS;
Double latitude,longitude;
/** Called when the activity is first created. */


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    GPSTracker gps = new GPSTracker(this);

    // check if GPS enabled     
    if(gps.canGetLocation()){
     latitude = gps.getLatitude();
     longitude = gps.getLongitude();
    //\n is for new line
    Toast.makeText(getApplicationContext(), "Your Location is - \nLat: " + latitude + "\nLong: " + longitude, Toast.LENGTH_LONG).show();
    }

    SmsManager sms = SmsManager.getDefault();
    sms.sendTextMessage("+9999999999", null, "hiiiii"+latitude+longitude, null, null);


    final Context context = this;
    PhoneCallListener phoneCallListener = new PhoneCallListener();
    TelephonyManager telManager = (TelephonyManager) this
            .getSystemService(Context.TELEPHONY_SERVICE);
    telManager.listen(phoneCallListener,
            PhoneStateListener.LISTEN_CALL_STATE);
    Intent phoneCallIntent = new Intent(Intent.ACTION_CALL);
    phoneCallIntent.setData(Uri.parse("tel:9999999"));
    startActivity(phoneCallIntent);

     public class PhoneCallListener extends PhoneStateListener {


    String TAG = "LOGGING PHONE CALL";

    private boolean phoneCalling = false;

    @Override
    public void onCallStateChanged(int state, String incomingNumber) {

        if (TelephonyManager.CALL_STATE_RINGING == state) {
            // phone ringing
            Log.i(TAG, "RINGING, number: " + incomingNumber);
        }

        if (TelephonyManager.CALL_STATE_OFFHOOK == state) {
            // active
            Log.i(TAG, "OFFHOOK");

            phoneCalling = true;
        }

        // When the call ends launch the main activity again
        if (TelephonyManager.CALL_STATE_IDLE == state) {

            Log.i(TAG, "IDLE");

            if (phoneCalling) {

                Log.i(TAG, "restart app");

                // restart app
                  Intent i = getBaseContext().getPackageManager()
                        .getLaunchIntentForPackage(
                                getBaseContext().getPackageName());

                i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivity(i);

                phoneCalling = false;
            }

        }
      }
    }



  }

0 个答案:

没有答案