Sending the same SMS twice

一世执手 提交于 2019-12-24 03:22:36

问题


I'm trying to make an sms android app, but i'm getting an error that i've never seen before, even in google i haven't found anything like that. So, if you could help me... i'll be glad

For some reason, the program is sending two messages (the same sms) at the same time. But it just happens in production. When i'm using the simulator, everything works fine! it Sends the sms just once ...

I've tried many phones and many phone operators but the error always happens. I really dont know how to discover what is happening because it happens only in real phones and not in simulator...

code follows below:

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.. anyone... any hint?!

Thx


回答1:


Hi :) Well I can be wrong but isn't pendingIntent.send(); sending the message? also, while in debuging mode, try to look what LogCat is saying :) Maybe you will find the answer there ;)




回答2:


Maybe You will find the answer HERE and THIS kind of a tutorial can be useful too




回答3:


I don't immediate see something wrong here. Can you connect your pc with your android phone, put a line break somewhere in your code and debug it this way? This way you can check how it comes into SMSManagerService.class sendSMS twice.




回答4:


Only to clarify the question and give an answer...

It's a bug on android, depending on phone and android version, that is running the sms application.

The bug is related here: Google code Android inssues

and one possible, thats works for me, is related here: Android sendTextMessage sends two identical messages on exceution, how to fix?



来源:https://stackoverflow.com/questions/11569866/sending-the-same-sms-twice

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!