Em sábado, 1 de junho de 2013 10h30min04s UTC-3, Rodrigo Alves escreveu:
> Cara, eu já fiz algo parecido p uma empresa... Lá contratamos os serviços da www.SmsEmMassa.com onde geramos um arquivo txt com os tels e a msg e importamos p o site q se vira p enviar... Dependendo do plano sai a 0,05 centavos a sms... Dá uma olhada lá... Acho melhor gerar um txt simples do q quebrar a cabeça p fazer uma parada q já existe
>
>
> Em 01/06/2013 10:23, "Renato Mateus" <renato...@gmail.com> escreveu:
>
> Em quinta-feira, 27 de setembro de 2012 16h36min49s UTC-3, Evandro Choma escreveu:
>
> > Boa tarde amigos
>
> >
>
> > Estou precisando de uma APP gostaria de saber se alguem conhece alguma que exista.
>
> > Preciso enviar SMS em massa, tenho uma lista de 15 mil números de telefones celulares e gostaria de enviar uma mensagem igual para todos, então precisaria de uma APP que populasse uma base via CSV ou TXT e depois eu escreveria a mensagem e pediria para enviar, o programa ficaria rodando de forma a enviar os SMS a todos os números cadastrados.
>
>
> >
>
> > Alguem conhece algo similar?
>
> >
>
> > Não precisa ser gratuito eu tenho uma plano de SMS no meu chip.
>
> >
>
> >
>
> > Obrigado
>
> > Evandro Choma
>
>
>
> Pessoal, poderiam me ajudar? Estou com um problema semelhante, entretanto, preciso fazer isso para uma clientela FIXA da minha pizzaria. www.JardimDaPizza.com.br. O que ocorre é.
>
>
>
>
> Através de um webservice, ele obterá uma lista de telefones a enviar, e irá processar. Isto tudo, está fazendo certo, preciso ter um retorno de delivery e resposta mesmo para cadastrar o cliente em eventos realizados pela pizzaria.
>
>
>
>
> Mas, quando no emulador funciona perfeitamente, no celular. GALAXY NOTE 2 é derrubado, também testei no milestone da motorolla e derruba também. segue codigo:
>
>
>
>
>
> /*Classe que efetua todo o processo, inclusive o webservice.*/
>
>
>
> ```
>
> package com.example.multisend;
>
>
>
> import java.util.ArrayList;
>
>
>
> import org.ksoap2.SoapEnvelope;
>
> import org.ksoap2.serialization.SoapObject;
>
>
>
> import org.ksoap2.serialization.SoapSerializationEnvelope;
>
> import org.ksoap2.transport.HttpTransportSE;
>
> import android.os.Bundle;
>
> import android.os.Handler;
>
> import android.app.Activity;
>
> import android.app.PendingIntent;
>
> import android.content.BroadcastReceiver;
>
> import android.content.Context;
>
> import android.content.Intent;
>
> import android.content.IntentFilter;
>
> import android.graphics.Color;
>
> import android.telephony.TelephonyManager;
>
> import android.telephony.SmsManager;
>
> import android.view.Menu;
>
> import android.view.View;
>
> import android.widget.TextView;
>
> import android.widget.Toast;
>
> import android.widget.ToggleButton;
>
>
>
> public class MultiSend extends Activity {
>
> ToggleButton btnIniciar;
>
> TextView txtStatus, txtContador;
>
> Thread t;
>
> private static final String SENT = "SMS_SENT";
>
> private static final String DELIVERED = "SMS_DELIVERED";
>
>
>
> String URL = "http://10.0.2.2:65052/Operacional.asmx";
>
>
>
> String TEMP_URI = "MultiSend.info";
>
>
>
> String resultado = "";
>
>
>
> TelephonyManager tm;
>
>
>
> SmsManager sMessage;
>
>
>
> int _CONTADOR = 0;
>
>
>
> @Override
>
> protected void onCreate(Bundle savedInstanceState) {
>
> super.onCreate(savedInstanceState);
>
> setContentView(R.layout.layout_multi_send);
>
> iniciarServico();
>
> }
>
>
>
> @Override
>
> public boolean onCreateOptionsMenu(Menu menu) {
>
> // Inflate the menu; this adds items to the action bar if it is present.
>
> getMenuInflater().inflate(R.menu.multi_send, menu);
>
> return true;
>
> }
>
>
>
> private void iniciarServico(){
>
> tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
>
> txtStatus = (TextView) findViewById(R.id.txtStatus);
>
> txtStatus.setTextColor(Color.RED);
>
> txtStatus.setText("Serviço parado.");
>
>
>
> txtContador = (TextView) findViewById(R.id.txtContador);
>
> txtContador.setTextColor(Color.DKGRAY);
>
>
>
>
>
> btnIniciar = (ToggleButton) findViewById(R.id.btnIniciaServico);
>
>
>
> btnIniciar.setOnClickListener(new View.OnClickListener() {
>
>
>
> @Override
>
> public void onClick(View v) {
>
> iniciar();
>
>
>
> }
>
> });
>
> }
>
> private void iniciar(){
>
> if(btnIniciar.isChecked()){
>
> txtStatus.setTextColor(Color.GREEN);
>
> txtStatus.setText("Serviço iniciado.");
>
> getOrdens();
>
> }
>
> else{
>
> txtStatus.setTextColor(Color.RED);
>
> txtStatus.setText("Serviço interrompido.");
>
> }
>
>
>
> }
>
> private void servicoWeb(SoapObject request, String nameSpce, String metodo, String url, String soapAction, String property){
>
> try{
>
>
>
> SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
>
> envelope.dotNet = true;
>
> envelope.setOutputSoapObject(request);
>
>
>
> HttpTransportSE transporte = new HttpTransportSE(url, 6000);
>
> transporte.call(soapAction, envelope);
>
> SoapObject result = (SoapObject) envelope.getResponse();
>
> retornoWS(result);
>
>
>
> }
>
> catch(Exception ex){
>
> txtStatus.setTextColor(Color.RED);
>
> txtStatus.setText(ex.getMessage().toString());
>
> }
>
>
>
> }
>
>
>
> private void registraAparelho(){
>
> Toast.makeText(this, "Por favor aguarde, estou registrando o aparelho.", Toast.LENGTH_SHORT).show();
>
>
>
> String nameSpace = TEMP_URI;
>
> String metodo = "xml_registraAparelho";
>
> String soapAction = "MultiSend.info/xml_registraAparelho";
>
> String property = "Retorno_SMS";
>
>
>
> SoapObject request = new SoapObject(nameSpace, metodo);
>
> request.addProperty("marca", "Avulso");
>
> request.addProperty("marca", "Modelo Avulso");
>
> request.addProperty("numero", tm.getLine1Number());
>
> request.addProperty("imei", tm.getDeviceId());
>
>
>
> servicoWeb(request, nameSpace, metodo, URL, soapAction, property);
>
>
>
> }
>
>
>
> private void getOrdens(){
>
> Toast.makeText(this, "Por favor aguarde...", Toast.LENGTH_SHORT).show();
>
> String nameSpace = TEMP_URI;
>
> String metodo = "xml_getOrdensEnvio";
>
> String soapAction = "MultiSend.info/xml_getOrdensEnvio";
>
> String property = "Retorno_SMS";
>
> SoapObject request = new SoapObject(nameSpace, metodo);
>
> request.addProperty("imei", tm.getDeviceId());
>
>
>
> servicoWeb(request, nameSpace, metodo, URL, soapAction, property);
>
> }
>
> private void retornoWS(SoapObject result){
>
> ArrayList<SMS> lista = new ArrayList<SMS>();
>
> int count = result.getPropertyCount();
>
> for (int i = 0; i< count; i++){
>
> SoapObject soap = (SoapObject) result.getProperty(i);
>
> if(soap.getProperty("Retorno_SMS").toString().equals("0031")){
>
> reiniciaProcesso();
>
> }
>
> else if(soap.getProperty("Retorno_SMS").toString().equals("0034")){
>
> registraAparelho();
>
> }
>
> else if(soap.getProperty("Retorno_SMS").toString().equals("0030")){
>
> getOrdens();
>
> }
>
> else if(soap.getProperty("Retorno_SMS").toString().equals("0000")){
>
> Toast.makeText(this, "Por favor aguarde, preparando envio.", Toast.LENGTH_SHORT).show();
>
> int id = Integer.parseInt(soap.getProperty("ID_SMS").toString());
>
> String texto = soap.getProperty("Texto_SMS").toString();
>
> String numero = soap.getProperty("Numero_SMS").toString();
>
> String data = soap.getProperty("DataHoraRequisicao_SMS").toString();
>
> int id_parceiro = Integer.parseInt(soap.getProperty("ID_Parceiro").toString());
>
> SMS sms = new SMS(id, texto, numero, data, id_parceiro, "");
>
> lista.add(sms);
>
> if(!lista.isEmpty()){
>
> iniciaProcessoEnvio(lista);
>
> lista.clear();
>
> }
>
> }
>
> else if(soap.getProperty("Retorno_SMS").toString().equals("0001")){
>
> Toast.makeText(this, "Sem ordens para enviar", Toast.LENGTH_SHORT).show();
>
> reiniciaProcesso();
>
> }
>
> else{
>
> txtStatus.setText(soap.getProperty("Retorno_SMS").toString());
>
> }
>
> /*Fim do Loop*/
>
> }
>
> /*Chama a função para dar início ao envio*/
>
>
>
> }
>
> private void iniciaProcessoEnvio(ArrayList<SMS> lista){
>
> Toast.makeText(this, "Enviando mensagem...", Toast.LENGTH_SHORT).show();
>
> int contador = lista.size();
>
> for (int i = 0; i<contador; i++){
>
> enviaMensagem(lista.get(i).Numero_SMS, lista.get(i).Texto, lista.get(i).ID_SMS);
>
> }
>
> }
>
> private void enviaMensagem(String numero, String texto, int id){
>
> try{
>
> PendingIntent sendPI = PendingIntent.getBroadcast(this, 0, new Intent(SENT).putExtra("ID_SMS", id), 0);
>
> PendingIntent deliveredPI = PendingIntent.getBroadcast(this, 0, new Intent(DELIVERED).putExtra("ID_SMS", id), 0);
>
> registerReceiver(new BroadcastReceiver() {
>
>
>
> @Override
>
> public void onReceive(Context context, Intent intent) {
>
> switch(getResultCode()){
>
> case Activity.RESULT_OK:
>
> atualizaStatus("Mensagem Enviada", "envio", intent.getExtras().getInt("ID_SMS"));
>
> break;
>
> case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
>
> atualizaStatus("Erro no envio da mensagem", "envio", intent.getExtras().getInt("ID_SMS"));
>
> break;
>
> case SmsManager.RESULT_ERROR_NO_SERVICE:
>
> atualizaStatus("Sem serviço", "envio", intent.getExtras().getInt("ID_SMS"));
>
> break;
>
> case SmsManager.RESULT_ERROR_NULL_PDU:
>
> atualizaStatus("Erro de PDU", "envio", intent.getExtras().getInt("ID_SMS"));
>
> break;
>
> }
>
> unregisterReceiver(this);
>
> }
>
>
>
> }, new IntentFilter(SENT));
>
>
>
>
>
> registerReceiver(new BroadcastReceiver() {
>
>
>
> @Override
>
> public void onReceive(Context context, Intent intent) {
>
> switch(getResultCode()){
>
> case Activity.RESULT_OK:
>
> atualizaStatus("Mensagem entregue", "recebimento", intent.getExtras().getInt("ID_SMS"));
>
> break;
>
> case Activity.RESULT_CANCELED:
>
> atualizaStatus("Mensagem não entregue", "recebimento", intent.getExtras().getInt("ID_SMS"));
>
> break;
>
> }
>
> unregisterReceiver(this);
>
> }
>
> }, new IntentFilter(DELIVERED));
>
> sMessage = SmsManager.getDefault();
>
> sMessage.sendTextMessage(numero, null, texto, sendPI, deliveredPI);
>
> _CONTADOR += 1;
>
> txtContador.setText("Enviados até agora: "+String.valueOf(_CONTADOR));
>
> }
>
> catch(Exception ex){
>
> txtStatus.setTextColor(Color.RED);
>
> txtStatus.setText(ex.getMessage());
>
> }
>
> }
>
>
>
> private void atualizaStatus(String status, String tipo, int id){
>
> String metodo;
>
> if(tipo.equals("envio")){
>
> metodo = "xml_atualizaStatusEnvio";
>
> }
>
> else{
>
> metodo = "xml_atualizaStatusRecebimento";
>
> }
>
>
>
> String nameSpace = TEMP_URI;
>
> String soapAction = "MultiSend.info/"+metodo;
>
> String property = "Retorno_SMS";
>
>
>
> SoapObject request = new SoapObject(nameSpace, metodo);
>
> request.addProperty("imei", tm.getDeviceId());
>
> request.addProperty("status", status);
>
> request.addProperty("id", id);
>
>
>
> servicoWeb(request, nameSpace, metodo, URL, soapAction, property);
>
> Toast.makeText(this, status, Toast.LENGTH_SHORT).show();
>
> }
>
> private void reiniciaProcesso(){
>
> try{
>
> Handler r = new Handler();
>
> r.postDelayed(new Runnable() {
>
>
>
> @Override
>
> public void run() {
>
> getOrdens();
>
> }
>
> }, 60 * 1000);
>
>
>
> }
>
> catch (Exception e) {
>
>
>
> }
>
> }
>
>
>
>
>
> }
>
>
>
> ```
>
> /*Agora a classe que registra quando o receptor respondeu o SMS*/
>
>
>
> ```
>
> package com.example.multisend;
>
>
>
> import java.util.ArrayList;
>
>
>
> import org.ksoap2.SoapEnvelope;
>
> import org.ksoap2.serialization.SoapObject;
>
> import org.ksoap2.serialization.SoapSerializationEnvelope;
>
> import org.ksoap2.transport.HttpTransportSE;
>
>
>
> import android.content.BroadcastReceiver;
>
> import android.content.Context;
>
> import android.content.Intent;
>
> import android.graphics.Color;
>
> import android.os.Bundle;
>
> import android.telephony.SmsMessage;
>
>
>
> import android.widget.Toast;
>
>
>
> public class SMSReceiver extends BroadcastReceiver {
>
>
>
> String URL = "http://10.0.2.2:65052/Operacional.asmx";
>
>
>
> String TEMP_URI = "MultiSend.info";
>
>
>
> String resultado = "";
>
>
>
>
>
> @Override
>
> public void onReceive(Context context, Intent intent) {
>
> Bundle bundle = intent.getExtras();
>
> SmsMessage[] msg = null;
>
> String str = "";
>
> String from = "";
>
> String texto = "";
>
>
>
>
>
> if(bundle != null){
>
> Object[] pdus = (Object[]) bundle.get("pdus");
>
> msg = new SmsMessage[pdus.length];
>
>
>
> for(int i = 0; i<msg.length; i++){
>
> msg[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
>
> from = msg[i].getOriginatingAddress();
>
> texto = msg[i].getMessageBody();
>
> }
>
> atualizaRetornoSMS(from, texto);
>
> Toast.makeText(context, "Retorno de: "+from, Toast.LENGTH_SHORT).show();
>
>
>
> }
>
>
>
>
>
> }
>
>
>
> private void atualizaRetornoSMS(String numero, String texto){
>
>
>
> String metodo = "xml_atualizaStatusRetornoSMS";
>
>
>
> String nameSpace = TEMP_URI;
>
> String soapAction = "MultiSend.info/"+metodo;
>
> String property = "Retorno_SMS";
>
>
>
> SoapObject request = new SoapObject(nameSpace, metodo);
>
> request.addProperty("numero", numero);
>
> request.addProperty("retorno", "SMS lido e respondido");
>
> request.addProperty("texto", texto);
>
>
>
> servicoWeb(request, nameSpace, metodo, URL, soapAction, property);
>
>
>
> }
>
>
>
> private void servicoWeb(SoapObject request, String nameSpce, String metodo, String url, String soapAction, String property){
>
> try{
>
>
>
> SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
>
> envelope.dotNet = true;
>
> envelope.setOutputSoapObject(request);
>
>
>
> HttpTransportSE transporte = new HttpTransportSE(url, 6000);
>
> transporte.call(soapAction, envelope);
>
> SoapObject result = (SoapObject) envelope.getResponse();
>
> //retornoWS(result);
>
>
>
> }
>
> catch(Exception ex){
>
> new Exception(ex.getMessage());
>
> }
>
>
>
> }
>
>
>
>
>
> }
>
>
>
> ```
>
>
>
> Espero que alguém possa me ajudar. Não sei mais para onde ir aqui. Obriagdo a todos.
>
>
>
> --
>
> You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
>
> To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-...@googlegroups.com.
>
> For more options, visit https://groups.google.com/groups/opt_out.
Entendo, acho que seria uma boa. Mas quero fazer algo particular entende? Por isso estou quebrando a cabeça. Sei que posso fazer por comandos AT. E já estou até pensando nisto.
--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
Re: [androidbrasil-dev] Re: [OT] Enviar SMS em massa
06:45 |
Assinar:
Postar comentários (Atom)
0 comentários:
Postar um comentário