两次发送相同的短信

时间:2012-07-19 21:50:34

标签: android android-emulator sms

我正在尝试创建一个短信Android应用程序,但我得到一个我以前从未见过的错误,即使在谷歌我还没有找到类似的东西。 所以,如果你能帮助我...我会很高兴

由于某种原因,程序正在同时发送两条消息(相同的短信)。 但它只是在生产中发生。当我使用模拟器时,一切正常!它只发送一次短信...

我尝试了很多手机和许多电话运营商,但总是会发生错误。 我真的不知道如何发现正在发生的事情,因为它只发生在真正的手机而不是模拟器......

代码如下:

private void sendSMS(String phoneNumber, String message, Context context) {
    ContextWrapper cw = new ContextWrapper(context);
    Context baseContext = cw.getBaseContext();

    Intent intentSMS = new Intent(baseContext, SMSManagerService.class);
    intentSMS.putExtra("celNumber", phoneNumber);
    intentSMS.putExtra("textMessage", message);

    Random s = new Random(System.currentTimeMillis());
    PendingIntent pendingIntent = PendingIntent.getService(cw, s.nextInt(), intentSMS, PendingIntent.FLAG_ONE_SHOT);
    try {
        pendingIntent.send();
    } catch (CanceledException e) {
    }
}

SMSManagerService.class

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    Bundle intentExtras = intent.getExtras();
    if (intentExtras != null) {
        String phoneNumber = intentExtras.getString("celNumber");
        String message = intentExtras.getString("textMessage");

        if (isContentValid(phoneNumber, message)) {
            sendSMS(phoneNumber, message);
        }
    }

    return super.onStartCommand(intent, flags, startId);
}

 private void sendSMS(String phoneNumber, String message) {
    sentPI = registerSMSSent(phoneNumber, message);
    deliveredPI = registerSMSdelivered();

    SmsManager sms = SmsManager.getDefault();
    sms.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI);
}

所以..任何人......任何提示?!

THX

4 个答案:

答案 0 :(得分:0)

嗨:)嗯,我可能错了,但不是pendingIntent.send();发送消息?同时,在debuging模式下,试着看看LogCat在说什么:)也许你会在那里找到答案;)

答案 1 :(得分:0)

也许你会找到答案HERETHIS这种教程也很有用

答案 2 :(得分:0)

我不会立即看到错误。你可以用你的Android手机连接你的电脑,在你的代码中的某处放一个换行符并以这种方式调试吗?这样,您可以检查它如何进入SMSManagerService.class sendSMS两次。

答案 3 :(得分:0)

只是澄清问题并给出答案......

这是一个关于Android的错误,取决于运行短信应用程序的手机和Android版本。

该错误与此相关: Google code Android inssues

一种可能,对我有用,与此相关: Android sendTextMessage sends two identical messages on exceution, how to fix?