2

我正在尝试制作一个 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);
}

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

谢谢

4

4 回答 4

0

嗨 :) 好吧,我可能是错的,但没有pendingIntent.send();发送消息?另外,在调试模式下,试着看看 LogCat 说什么 :) 也许你会在那里找到答案 ;)

于 2012-07-19T22:07:19.960 回答
0

也许你会在这里找到答案,这种教程也很有用

于 2012-07-20T20:47:35.333 回答
0

我没有立即看到这里有什么问题。你能把你的电脑和你的安卓手机连接起来,在你的代码中的某个地方放一个换行符,然后用这种方式调试吗?这样,您可以sendSMS两次检查它是如何进入 SMSManagerService.class 的。

于 2013-01-18T08:19:00.260 回答
0

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

这是运行 sms 应用程序的 android 上的错误,具体取决于手机和 android 版本。

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

一种可能的,这对我有用,在这里相关: Android sendTextMessage 在执行时发送两条相同的消息,如何解决?

于 2014-02-25T21:16:38.107 回答