Android会发送两次相同的消息

时间:2011-02-04 11:29:13

标签: android sms

如有问题我正在使用以下代码我不知道为什么它发送短信两次

sendButton.setOnClickListener(new OnClickListener() 
    {   
        @Override
        public void onClick(View v) 
        {
            msg = messgeText.getText().toString();
            no = phoneNumber.getText().toString();
            if(msg.length() > 0 && no.length() > 0)
                sendSMS(no, msg);
        }
    });

这里是sendSMS

private void sendSMS(String phoneNumber, String message)
{                       
    SmsManager.getDefault().sendTextMessage(phoneNumber, null, message, null, null);  
    Log.d("Insend", "sms sent");
    Toast.makeText(SendSMS.this, "SMS Successfully sent.", Toast.LENGTH_SHORT).show();
    finish();
}

2 个答案:

答案 0 :(得分:0)

我认为处理程序被调用了两次。所以你必须找出原因?假设您正在使用onKeyListener,则必须区分它是onKeyUp还是onKeyDown。由于您使用的是onClick,我不确定它为什么会被调用两次!

答案 1 :(得分:0)

HTC纹身手机也遇到了同样的问题。

使用以下代码,奇怪地解决了这个问题!

private void sendSMS(String to, String text) {
    SmsManager sms = SmsManager.getDefault();
    ArrayList<String> messages = sms.divideMessage(text);
    sms.sendMultipartTextMessage(to, null, messages, null, null);
}

请注意使用 sendMultipartTextMessage 。它也适用于小文本消息!