2015-02-05 74 views
0

我已经制作了一个小应用,用户可以同时向多个用户发送短信。我已经完成了所有教程,并且工作正常。我创建了一个SMSManager,将消息分成多部分发送:如果30分钟内有超过30条短信,则不会发送短信

ArrayList<String> msgArray=smsManager.divideMessage(msg); 
smsManager.sendMultipartTextMessage(phoneNo, null, msgArray, null, null); 

一切工作正常。问题是如果用户想在几分钟内发送超过30条消息。在这种情况下,Android会显示一条警告:

"{MyAppName} is sending to many messages. Do you want to allow sending messages?" 

对于30条以上发送消息的每条消息,我会收到该警告。它给了我一个允许或否认的选择。问题是,即使我点击“允许”,邮件也不会被发送。

想象一个用户选择35个接触的情况,并希望将消息发送给所有的人。在他点击发送之后,发送30条消息,而对于另外5个对话框,显示用户被询问是否允许进一步发送的对话框。

即使我点击“允许”,邮件也不会被发送,只会发送30封邮件。这样用户就会得到一个所有消息都被发送但不是的印象。即使他允许应用发送这5条消息也不会被发送。

是否有解决此问题的方法?我需要一些解决方法来找出哪些邮件没有发送和发送方式。

谢谢。

回答

0

不应该将空的ArrayList上争论sentIntents但增加的PendingIntent的实际阵列 - 你可以用它来检查,如果你的信息被正确sended。看看documentation

可能回答这个question也会有帮助。

+0

谢谢,但有一个问题,这些错误信息都不适用于这种情况。当警报对话框显示时,不会触发通用故障,无服务,空pdu和无线电关闭。 – user4386126 2015-02-06 15:57:55

+0

因此您在BroadcastReceiver中收到的结果是Activity.RESULT_OK? – tch 2015-02-06 16:04:08

+0

对于前30条消息,我收到了Activity.RESULT_OK,但对于其他消息,我没有收到任何结果。我有一种感觉,谷歌有一些隐藏的结果代码,他们只使用内部。 – user4386126 2015-02-06 18:54:44