[Q] Limit on sending SMS per app?

chuckyegg

Member
Licensed User
Longtime User
Hi guys
I'm considering using B4A to re-develop an app I started in AppInventor, which acts as a community messaging hub.

I've heard that there is a limit of 100 SMS which can be sent by any Android app in any 1 hour period.

Is this the case with B4A apps?

If so, is there a work-around? (I was thinking of writing outbound messages to SQL, then having multiple mini-apps which send the messages - does that sound feasible?)

TIA
 

stevel05

Expert
Licensed User
Longtime User
It's probably not an inbuilt system limit, but there are certainly examples of Apps being pulled from the Android Market for breaking it. And presumably your phone/contract provider will have something to say about it too.
 
Upvote 0

thedesolatesoul

Expert
Licensed User
Longtime User
Upvote 0

chuckyegg

Member
Licensed User
Longtime User
Hey All,

Thanks for all your replies

I've found this, which seems to be a fix:
market4android.com/how-to-remove-the-100-sms-limit-each-hour.php

I've not tried it yet, but it looks promising...
 
Upvote 0

raytronixsystems

Active Member
Licensed User
Longtime User
You could send SMS messages to phones by sending emails to the recipient's Carrier's SMS gateway. I don't know if there is any email transmission limit by Google at the moment so this could be a simple workaround of the 100 SMS message/hr limit.

You could perform a look-up of the recipient's cellphone number by one of numerous websites that provide Carrier info based upon submission of a phone number. Once you have the Carrier name you could form the proper destination address based upon the number and gateway domain. This should not be hard to do. I send messages all of the time from my Ebay email account to my phone and from Google Calendar to my and other's phones using this method.
This site How To Send Email To Any Cell Phone (for Free) contains a list of most (if not all) US Carrier's SMS Gateways.

I hope this is useful.
thx,
Ray
 
Upvote 0

chuckyegg

Member
Licensed User
Longtime User
Hi Ray

Email to SMS gateways is much more complex than simply sending an SMS (or I assume and hope it is anyway!), and I have 3000 free messages per month.

I'm not sure that those gateways are common in the UK either, but I'll look into it as a fall-back and to avoid extra costs if I go over 3000
 
Upvote 0

georgeand666

New Member
Portugues - Br (brasil)

sORRY FOR POST IN OTHER LANGUAGE

Pra que fazer um post tão detalhado?
Porque nem sempre o que é logico pra vc, seja tão intuitivo para as demais pessoas

1) primeiro de tudo, vc precisa ter o "Android SDK" em seu computador (SE JA TIVER PULE PARA A PARTE 2 )
COMO FAZER ISSO?
Caso não tenha, baixe ele NO SITE LISTADO NO POST EM INGLES

lembre de baixar a versao ".zip", ou seja compactada
descompacte ele na pasta "c:/"
Com isso vc passou a ter a pasta "c:/android-sdk-windows/"

2) vc precisa ter o adb instalado no seu computador.( SE JA TIVER PULE PARA A PARTE 3 )
COMO FAZER ISSO?

A)
Defina o caminho no android.
Aqui nós temos duas maneiras de fazer

- Primeira opção: Pelo prompt de comando "CMD".

Clique no "menu iniciar" e depois em "executar"
digite "cmd" e clique em "ok"
digite "cd.." e aperte "enter" umas 3 vezes seguidas
para que seja mostrado algo como "C:\>"

digite o seguinte: "set PATH=%PATH%;c:\android-sdk-windows\tools" sem aspas e aperte enter.


- Segunda Opção:

No XP
Botão direito do mouse em Meu Computador e clique em Propriedades
Clique em avançado
Clique em Variáveis de Ambiente
Verifique a variável path e clique no botão Editar
Marquea variável no final de tudo ";c:\android-sdk-windows\tools" sem aspas


No Vista e Windows 7

Vá em Start
Clique com o botão direito do mouse em COmputador
Clique em Propriedades
Clique em Configurações Avançadas do Sistema
Clique em avançado
clique em Variáveis de Ambiente
Marque a variável path e clique no botão Editar
Adicione a variável no final de tudo ";c:\android-sdk-windows\tools"sem aspas

==================================================

B)
Execute o arquivo SDK Setup.exe que está dentro da pasta c:/android-sdk-windows

Agora vamos as configurações e marque a caixa “Force https para buscar sources.list usando http"
e pressione o botão "Save & Apply"

Depois, vamos onde diz "Available packages" precione o botão "Refresh"

Marque todos os pacotes e pressione "install selected"

vai ter uma longa espera para baixar o 900 MB.


3) coloque o celular em modo depuração.
COMO FAZER ISSO?
No seu celular com android, va no icone "configuração"
entre em "aplicações"
depois entre em "desenvolvimento"
e ative a opçao "depuração de usb"
feito isso, plugue o celular no cabo usb ligado ao computador
pronto

4) abra o prompt de comando
COMO FAZER ISSO?
Clique no "menu iniciar" e depois em "executar"
digite "cmd" e clique em "ok"
digite "cd.." e aperte "enter" umas 3 vezes seguidas
para que seja mostrado algo como "C:\>"

5) no prompt de comando abra o adb

COMO FAZER ISSO?

A)

**************************************************
IMPORTANTE
**************************************************

COMO SABER SE ESTA TUDO OK ATE AKI?
no prompt de comando, digite "adb devices"
é pra dar um retorno, algo como:

List of devices attached
1000b850d0e9 device

*Lembrando que é algo parecido com isso, não exatamente igual*

==================================================

B)

no prompt de comando, digite "adb shell"

**************************************************
IMPORTANTE
**************************************************

vc pode ter dois tipos de retorno:
$ ou #

OQUE SIGNIFICA CADA?
$ vc tem acesso normal ao celular
# vc tem acesso de Super Usuario

( é necessario acesso de Super Usuario para modificar as configurações de limite de sms )

caso tenha aparecido $ digite "su" e aperte "enter"

é para ter mudado de $ para #

caso não tenha mudado, realmente não sei o que fazer pra te ajudar.
já fiz tantos testes no meu pc que posso ter instalado algo
que me possibilita entrar como Super Usuario no celular

6) de permissão para escrita
COMO FAZER ISSO?

A)
tente digitar "remount rw" e aperte "enter"
se por ventura aparecer algum erro, algo como "not found"

==================================================

B)
tente digitar:
"mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system“ e aperte "enter"

se vc estiver tentando fazer estar modificações no emulador, digite
“mount -o remount,rw -t yaffs2 /dev/block/mtdblock0 /system“

Nota: não sei pq muda apenas o mtdblock3 para mtdblock0 no caso do emulador
apenas sei que funciona...

7) feito isso saia do adb shell
COMO FAZER ISSO?
digite "exit" e aperte "enter"

8) pegue a tabela de configurações, a tal "settings.db"
COMO FAZER ISSO?
no prompt de comand, digite:
adb pull /data/data/com.android.providers.settings/databases/settings.db

**************************************************
IMPORTANTE
**************************************************
CASO APARECER UM ERRO DO TIPO "does not exist"
NÃO SE DESESPERE, TACARA O CELULAR NO CHÃO NÃO AJUDA EM NADA
O ARQUIVO APENAS ESTA EM OUTRO LUGAR

Nota: eu ja tinha quebrado 2 celulares ao chegar sempre nesse ponto

adb pull /dbdata/databases/com.android.providers.settings/settings.db

**************************************************
IMPORTANTE 2
**************************************************
pode dar erro de acesso negado, eu realmente nao sei como reverter isso.
no meu caso deu esse erro apenas em 1 aparelho e eu apenas segui em frente...

9) coloque o arquivo settings.db em um local onde vc possa editar
COMO FAZER ISSO?
abra o adb shell novamente e digite su para ter acesso Super Usuario

A)
caso no passo 8 tenha dado certo no primeiro passo
ou caso tenha dado acesso negado no primeiro passo
digite:
"cat /data/data/com.android.providers.settings/databases/settings.db > /data/local/settings.db"
e aperte "enter"

digite exit para sair do adb shell

==================================================

B)
caso no passo 8 tenha dado certo no segundo passo
ou caso tenha dado acesso negado no segundo passo
digite:
"cat /dbdata/databases/com.android.providers.settings/settings.db > /data/local/settings.db"
e aperte "enter"

digite exit para sair do adb shell

10) editando o arquivo settings.db

no prompt de comand, digite:
"adb pull /data/local/settings.db"

apos digite:
"sqlite3 settings.db"

**************************************************
IMPORTANTE
**************************************************
vc precisa saber qual tabela de configuração existe no seu celular
para isso digite:

"select * from secure;" e depois aperte enter

Caso aparecer o erro: "no such table", significa que a tabela de configuração tem outro nome.
tente digitar:

"select * from gservices;" e depois aperte enter

Nota: caso não der erro em algum dos comandos, sera listado todo o conteudo da tabela de configuração.

sabendo o nome da tabela de configuração, digite:

Caso o nome da tabela de configuração for secure
"INSERT INTO secure (name, value) VALUES ('sms_outgoing_check_max_count', 9999);" e tecle "enter"
"INSERT INTO secure (name, value) VALUES ('sms_outgoing_check_interval_ms', 0);" e tecle "enter"

Caso o nome da tabela de configuração for gservices
"INSERT INTO gservices (name, value) VALUES ('sms_outgoing_check_max_count', 999999999);" e tecle "enter"
"INSERT INTO gservices (name, value) VALUES ('sms_outgoing_check_interval_ms', 0);" e tecle "enter"



**************************************************
IMPORTANTE
**************************************************

sabendo o nome da tabela de configuração, digite:

Caso o nome da tabela de configuração for secure
digite "select * from secure" e aperte enter para saber se foi inserido as linhas com os valores acima

Caso o nome da tabela de configuração for gservices
digite "select * from gservicese aperte enter para saber se foi inserido as linhas com os valores acima

10) saia do sqlite3, digite ".exit" e aperte "enter"

11) digite "adb push settings.db /data/local/" e aperte "enter"

12) entre novamente no adb shell como Super Usuario ( ou seja digite su para aparecer o # )

13) copie o arquivo modificado do settings.db para o local de origen dele
COMO FAZER ISSO?
no adb shell, digite "cd /data/local" e aperte "enter"
digite "ls" e aperte "enter", veja se o arquivo "settings.db" esta sendo listado

A)
caso no passo 8 tenha dado certo no primeiro passo
ou caso tenha dado acesso negado no primeiro passo
digite:
"cat settings.db > /data/data/com.android.providers.settings/databases/settings.db" e aperte "enter"

==================================================

B)
caso no passo 8 tenha dado certo no segundo passo
ou caso tenha dado acesso negado no segundo passo
digite:
"cat settings.db > /dbdata/databases/com.android.providers.settings/settings.db" e aperte "enter"

14) conferindo se o arquivo foi copiado corretamente

A)
caso no passo 8 tenha dado certo no primeiro passo
ou caso tenha dado acesso negado no primeiro passo
digite:
"cmp -l /data/local/settings.db /data/data/com.android.providers.settings/databases/settings.db" e aperte "enter"
se não aparecer nenhum tipo de erro, é pq foi copiado com sucesso
ou seja, o arquivo editado é igual ao arquivo na pasta de configuracao

==================================================

B)
caso no passo 8 tenha dado certo no segundo passo
ou caso tenha dado acesso negado no segundo passo
digite:
"cmp -l /data/local/settings.db /dbdata/databases/com.android.providers.settings/settings.db" e aperte "enter"
se não aparecer nenhum tipo de erro, é pq foi copiado com sucesso
ou seja, o arquivo editado é igual ao arquivo na pasta de configuracao

15) resentando o celular
digite "exit" ate voltar ao prompt de comando
digite "adb reboot" e aperte "enter"
aguarde que o celular vai ser rebotado

16) caso vc tenha chego ate aki, parabens vc conseguiu !!!
 
Upvote 0
Top