android:我多久可以发送一条短信

时间:2015-05-13 12:47:12

标签: android sms broadcastreceiver smsmanager

通过以下方式发送短信:

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

由系统缓冲?
我可以立即以相同的方式发送下一条短信,或者我必须等待:

PendingIntent sentPI = PendingIntent.getBroadcast(this, 0, new Intent(SENT), 0);  

registerReceiver(new BroadcastReceiver(){
    @Override
    public void onReceive(Context arg0, Intent arg1) {
        switch (getResultCode())
        {   case Activity.RESULT_OK:
//              ***next SMS ready to SEND***
                break;
            case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
                break;
            case SmsManager.RESULT_ERROR_NO_SERVICE:
                break;
            case SmsManager.RESULT_ERROR_NULL_PDU:
                break;
            case SmsManager.RESULT_ERROR_RADIO_OFF:
                break;
        }
    }
}, new IntentFilter(SENT));

1 个答案:

答案 0 :(得分:2)

您可以在不等待SENT / DELIVERD回调的情况下发送多条短信。但是,为了防止使用设备发送垃圾短信,SmsManager的大多数实现只允许在一段时间Y内发送X消息。为了防止这种保护机制被踢入,你不应该在短时间内发送大量消息

如果您想连续发送2或3条消息,这不是问题。但是如果你要发送数十个或者是饥饿的,那么你应该在每个之间添加30到60秒的时间延迟。

请注意,对于每个硬件供应商,此行为的实现可能会有所不同。