发送相同的短信两次

发送相同的短信两次

问题描述:

我想做一个短信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); 
} 

so ..任何人...任何提示?!

THX

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

这是在Android上的错误,这取决于手机和Android版本,运行SMS应用。

该错误是这里涉及: Google code Android inssues

和一个可能,这就是对我的作品,在这里相关: Android sendTextMessage sends two identical messages on exceution, how to fix?

嗨:)嗯,我可能是错的,但不pendingIntent.send();发送消息?同时,而在调试运行模式,试图寻找什么logcat的是说:)也许你会找到答案有;)

+0

THX回答。 不幸的是LogCat没有记录任何异常。似乎是正确的。 和...“不是pendingIntent.send();发送消息?” 我不明白你的意思 – Emerick 2012-07-19 22:21:38

+0

没关系,反正它是错误的想法;) – JuozasA 2012-07-20 19:25:23

也许你会找到答案HERETHIS样的教程是有用的太

这里我没有立即看到有什么问题。你可以连接你的电脑与你的android手机,在你的代码的某处放一个换行符并用这种方式进行调试吗?这样你可以检查它是如何进入SMSManagerService.class sendSMS两次。