发送短信的号码数量有限制吗?

时间:2013-09-29 14:25:34

标签: android sms smsmanager

在我的应用中,我想向一堆数字发送群发短信,我想知道短信的收件人列表是否有时间限制或大小限制。

我在之前的问题中看到的是当前Android版本中不再存在的代码,如对当前代码中不再存在的SMSDispatcher和Settings常量的引用。

3 个答案:

答案 0 :(得分:4)

在浏览了我的应用支持的所有API的Android资源后,我使用以下代码

private void setSmsDefaultLimitations(){

    int apiLevel = Build.VERSION.SDK_INT;
    String versionRelease = Build.VERSION.RELEASE;

    switch(apiLevel){
    case 9:
    case 10:
    case 11:
    case 12:
    case 13:
    case 14:
    case 15:
        sMaxAllowed = 100;
        sCheckPeriod = 3600000;
        break;
    case 16:
        sMaxAllowed = 30;
        sCheckPeriod = 1800000;
        break;
    case 17:
        sMaxAllowed = 30;
        if(versionRelease.contains("4.2.2")){
            sCheckPeriod = 60000;
        }else {
            sCheckPeriod = 1800000;
        }
        break;
    case 18:
        sMaxAllowed = 30;
        sCheckPeriod = 60000;
        break;
    default:
        sMaxAllowed = 30;
        sCheckPeriod = 1800000;
        break;
    }
    sMaxAllowed = sMaxAllowed - 2; //This is to give us a little buffer to be extra safe (like a condom ;)
    Log.d(TAG, "maxAllowed = "+sMaxAllowed+"; checkPeriod = "+(sCheckPeriod/60000) + " minutes");
}

答案 1 :(得分:0)

短信发送限制不迟于Gingerbread引入。据我所知,我进行了彻底的调查,从API到API的限制各不相同,通常无法在非root设备上覆盖这些限制。如果可能,那些是罕见的例外。我认为当前最小值是30分钟内的30条消息,但这可能会有所变化。谷歌是老板。

话虽这么说,如果你的应用程序只能从你的设备或受控设备数量的设备发送消息,你可以通过生根设备然后将SMS_OUTGOING_CHECK_MAX_COUNT设置为一个巨大的数字(比如说99999)来解决这个问题: / p>

  • /data/data/com.android.providers.settings/databases/settings.db
    1. 安全
    2. 系统
  • /data/data/com.google.android.gsf/databases/gservices.db
    1. table main

此外,如果您正在为单个API开发应用,那么Google应该具有特定限制。

答案 2 :(得分:-1)

您可以通过SMS发送给个人的数量是160.您可以使用SmsManager类方法的sendMultiPartTextMessage()。

            EXAMPLES:

https://stackoverflow.com/a/3939791/254567

AND

https://stackoverflow.com/a/6590782/254567