android: 我可以多久发送一次短信
android: how often can I send SMS message
通过以下方式发送短信:
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));
您可以发送多条短信而无需等待 SENT/DELIVERD 回调。但是,为了防止使用设备发送垃圾短信,大多数 SmsManager 的实现只允许在 Y 时间段内发送 X 条消息。为防止此保护机制启动,您不应在短时间内发送大量消息.
如果您想连续发送 2 条或 3 条消息,这不是问题。但是如果你要发送几十个或几百个,那么你应该在每个之间添加 30 到 60 秒的时间延迟。
请注意,对于每个硬件供应商,此行为的实现可能不同。
通过以下方式发送短信:
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));
您可以发送多条短信而无需等待 SENT/DELIVERD 回调。但是,为了防止使用设备发送垃圾短信,大多数 SmsManager 的实现只允许在 Y 时间段内发送 X 条消息。为防止此保护机制启动,您不应在短时间内发送大量消息.
如果您想连续发送 2 条或 3 条消息,这不是问题。但是如果你要发送几十个或几百个,那么你应该在每个之间添加 30 到 60 秒的时间延迟。
请注意,对于每个硬件供应商,此行为的实现可能不同。