【问题标题】:is there a limit to the number of numbers to send an SMS?发送短信的号码数量是否有限制?
【发布时间】:2013-09-29 14:25:33
【问题描述】:

在我的应用程序中,我想向一堆号码发送一条群发短信,并且我想知道短信收件人列表是否有时间阈值或大小限制。

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

【问题讨论】:

  • 如果您在太短的时间内尝试发送太多消息,我绝对记得会弹出一个对话框,尽管我忘记了细节。
  • 运气好吗? @thepoosh 我也在努力寻找解决方案

标签: android sms smsmanager


【解决方案1】:

在浏览了我的应用支持的所有 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");
}

【讨论】:

  • @asheinfeld 请注意这个答案
【解决方案2】:

在 Gingerbread 之前引入了 SMS 发送限制。据我所知,并且我彻底调查过,API 之间的限制各不相同,而且通常不可能在非 root 设备上覆盖这些限制。如果可能的话,这些都是罕见的例外。我认为目前的最低限度是 30 分钟内 30 条消息,但这可能会发生变化。谷歌是老大。

话虽如此,如果您的应用应该仅从您的设备或从受控数量的设备发送消息,您可以通过以下方式解决此问题:root 设备,然后将 SMS_OUTGOING_CHECK_MAX_COUNT 设置为一个巨大的数字(例如 99999):

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

此外,如果您正在为单一 API 开发应用,您应该在 Google 上搜索其具体限制。

【讨论】:

    【解决方案3】:

    您可以通过 SMS 向个人发送的号码数量为 160。您可以使用 SmsManager 类方法的 sendMultiPartTextMessage()。

                EXAMPLES:
    

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

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

    【讨论】:

    • 那是消息中字符数的限制,而不是收件人数量的限制。
    • 我的坏。我相信您一次最多可以向 50 个收件人发送短信。
    • @user2828530,这有什么来源吗?我浏览了 SMSDispatcher,什么也没找到
    猜你喜欢
    • 2013-12-01
    • 1970-01-01
    • 2019-01-09
    • 2018-02-11
    • 1970-01-01
    • 1970-01-01
    • 2014-08-07
    • 1970-01-01
    相关资源
    最近更新 更多