Android envoient beaucoup de SMS

J'ai une application qui envoie beaucoup de SMS à un serveur central. Chaque utilisateur va probablement envoyer ~300 txts/jour. Les SMS sont utilisés en tant que couche réseau, parce que le SMS est presque partout et l'internet mobile n'est pas. L'app est conçu pour être utilisé dans beaucoup de 3ème pays du monde où l'internet mobile n'est pas omniprésent.

Quand j'ai frappé une limite de 100 messages, je reçois une invite pour chaque message envoyé. Indique à l'invite "Un grand nombre de messages de SMS sont envoyés". Ce n'est pas ok pour l'utilisateur d'avoir invité chaque temps de se demander si l'application peut envoyer un message texte. L'utilisateur ne veut pas se faire 30 jours consécutifs invites.

J'ai trouvé cette source android fichier avec google. Il pourrait être mis à jour, je ne peux pas dire. Il semble qu'il y est une limite de 100 messages sms chaque 3600000ms(1 jour) pour chaque application.

http://www.netmite.com/android/mydroid/frameworks/base/telephony/java/com/android/internal/telephony/gsm/SMSDispatcher.java

/** Default checking period for SMS sent without uesr permit */
private static final int DEFAULT_SMS_CHECK_PERIOD = 3600000;

/** Default number of SMS sent in checking period without uesr permit */
private static final int DEFAULT_SMS_MAX_ALLOWED = 100;

et

/**
 *  Implement the per-application based SMS control, which only allows
 *  a limit on the number of SMS/MMS messages an app can send in checking
 *  period.
 */
private class SmsCounter {
    private int mCheckPeriod;
    private int mMaxAllowed;
    private HashMap<String, ArrayList<Long>> mSmsStamp;

    /**
     * Create SmsCounter
     * @param mMax is the number of SMS allowed without user permit
     * @param mPeriod is the checking period
     */
    SmsCounter(int mMax, int mPeriod) {
        mMaxAllowed = mMax;
        mCheckPeriod = mPeriod;
        mSmsStamp = new HashMap<String, ArrayList<Long>> ();
    }

    boolean check(String appName) {
        if (!mSmsStamp.containsKey(appName)) {
            mSmsStamp.put(appName, new ArrayList<Long>());
        }

        return isUnderLimit(mSmsStamp.get(appName));
    }

    private boolean isUnderLimit(ArrayList<Long> sent) {
        Long ct =  System.currentTimeMillis();

        Log.d(TAG, "SMS send size=" + sent.size() + "time=" + ct);

        while (sent.size() > 0 && (ct - sent.get(0)) > mCheckPeriod ) {
                sent.remove(0);
        }

        if (sent.size() < mMaxAllowed) {
            sent.add(ct);
            return true;
        }
        return false;
    }
}

Est-ce même le vrai code android? On dirait qu'il est dans le package "com.android.interne.la téléphonie.gsm", je ne peux pas trouver ce paquet sur l'android site.

Comment puis-je désactiver/modifier cette limite? J'ai cherché sur google pour trouver des solutions, mais je n'ai rien trouvé.


J'ai donc été en regardant le lien que commonsware.com posté, et j'ai trouvé que la source avait réellement changé. Et donc je pourrais toujours avoir un coup.

    int check_period = Settings.Gservices.getInt(mResolver,
            Settings.Gservices.SMS_OUTGOING_CEHCK_INTERVAL_MS,
            DEFAULT_SMS_CHECK_PERIOD);
    int max_count = Settings.Gservices.getInt(mResolver,
            Settings.Gservices.SMS_OUTGOING_CEHCK_MAX_COUNT,
            DEFAULT_SMS_MAX_COUNT);
    mCounter = new SmsCounter(max_count, check_period);

C'est arriver checkPeriod et maxCount à partir d'un tableau de paramètres. Mais je ne semblent pas avoir accès à la même table. Cette source doit être Android 1.1, qui est le même que j'utilise. Lorsque j'essaie d'importer android.fournisseur de.Les paramètres.Gservices, je reçois un message d'erreur indiquant que l'importation ne peut pas être résolu.

Ce qui se passe?

  • Juste une remarque: 3600000ms n'est pas un jour, mais une heure: 3600000ms = 3600s = 60m = 1h
  • Si vous pouvez envoyer 100/heure et vous avez besoin seulement 300/jour, pourquoi ne pas simplement de l'accélérateur de votre application, et de travailler sur votre compression à la place? Aussi, je suis curieux; exactement quelle partie du monde n'a pas internet mobile, mais les téléphones android et 300 SMS sont pratiques et abordables? SMS est assez cher dans la plupart des pays sans développé l'internet mobile. Le seul cas d'utilisation je pense c'est de l'argent-pas-objet les sociétés étrangères; mais sûrement satallite téléphones ont une meilleure couverture pour l'argent?
  • J'ai un SMS bomber qui envoie 1 texte à chaque seconde, et pas de limite, donc il y a évidemment un moyen de contourner cela. Et @Colin, pas de sat téléphones ne sont pas à ce qu'ils sont faits pour être. Mon père travaille pour le Département. de la Sécurité intérieure, et ils en ont, et il dit que vous devez être debout, parfaitement immobile pour les faire fonctionner. Pas même une brise légère peut être là, et surtout pas dans un bâtiment. Ceux que l'armée utilise sont plus comme les appareils sans fil qui sont tous reliés à un grand plat ou une station de base quelque part à proximité.
  • vous avez un SMS bomber sur Android sans dispositif d'ancrage? Si oui, svp laissez-moi savoir plus.
  • C'était l'une des premières choses que j'ai téléchargé quand j'ai eu mon MotoDroid, de sorte que c'était plus d'un an. Il a par la suite été retiré du marché. Il a été appelé JDS SMS Bomber. Le développeur a un site où vous pouvez le télécharger, mais a une limite maintenant pour une raison quelconque. Je suppose que je pourrais déchirer l'APK de mon téléphone et de le rendre disponible (puisque c'est gratuit de toute façon).
  • Aucune solution trouvée ?
  • Aussi Mohit, je suis curieux de ce projet sur lequel vous travaillez? Je suis en train de faire quelque chose pour des projets de recherche Universitaire et serait intéressé à discuter. Merci! Vous pouvez m'écrire à [salut @ jonl . org] sans les espaces bien sûr.
  • Quelqu'un a un solution? Mon application est une application de confiance, non pas dans le Play Store pour son propre usage, cette restriction est incorrect.
  • Essayez cette blog.drhack.net/gosms-android-sms-security-feature. Pas de travail. Essayé une autre forum.xda-developers.com/showthread.php?t=1835056, mais toujours popping out.