Модераторы: javastic
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отправка смс, где номер и соообщение берутся из уд 
:(
    Опции темы
Rammsteinik
Дата 21.2.2013, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 19.2.2013

Репутация: нет
Всего: нет



Всем привет. Есть магазин по продаже ICQ номеров разной длины. Суть в том, что бы пользователь андроида QR кодом скачивал приложение, нажимал на кнопку, которая отправляет смс и взамен получает UIN и пароль. Проблема в том, что номер, на который отправляется смс,  так же текст сообщения находятся в 2х текстовых файлах на удалённом сервере. Это сделано мне для удобства. Вот предоставляю код, который активити моего приложения, но он почему то не работает. Если присвоить значения строкам номера и сообщения, то всё прекрасно работает, но вот считывать из файлов эти значения не хочет. в тоаст значения хорошо выводятся, но этот метод мне не подошёл.

Полный код активити

Код

package ru.example.uinpass;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.URL;
import java.net.URLConnection;
import java.nio.charset.Charset;

import ru.example.uinpass.R;
import android.app.Activity;
import android.app.PendingIntent;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.telephony.gsm.SmsManager;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;

public class MainActivity extends Activity {

     Button btnSend;
     
        @Override
        public void onCreate(final Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            this.setContentView(R.layout.activity_main);

            final Button btnSend = (Button)this.findViewById(R.id.btnSend);
            btnSend.setOnClickListener(new View.OnClickListener()
            {
                public void onClick(final View v)
                {
                    new Thread(new Runnable()
                    {
                        @Override
                        public void run()
                        {
                            try
                            {
                              final URL myURL = new URL("http://адрес-сайта.ру/number.txt");
                                    final URLConnection connection = myURL.openConnection();
                                    connection.setDoInput(true);
                                    final Reader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), Charset.forName("UTF-8")));

                                    final URL myURL2 = new URL("http://адрес-сайта.ру/message.txt");
                                    final URLConnection connection2 = myURL2.openConnection();
                                    connection2.setDoInput(true);
                                    final Reader reader2 = new BufferedReader(new InputStreamReader(connection2.getInputStream(), Charset.forName("UTF-8")));
                                try
                                {
                                 final char [] buffer1 = new char[1024];
                                    final StringBuilder msg = new StringBuilder();
                                    final char [] buffer2 = new char[1024]; 
                                    final StringBuilder msg2 = new StringBuilder();
                                   
                                    int readCount;
                                    do
                                    {
                                     readCount = reader.read(buffer1); 
                                        msg.append(buffer1); 
                                       
                                        
                                    }
                                    while (
                                         
                                         readCount >= buffer1.length);

                                    int readCount2; 
                                    do 
                                    { 
                                        readCount2 = reader2.read(buffer2); 
                                        msg2.append(buffer2); 
                                    } 
                                    while (readCount2 >= buffer2.length);
                                    MainActivity.this.runOnUiThread(new Runnable()
                                    {
                                        @Override
                                        public void run()
                                        {
                                         

                                         String phoneNumber = new String(msg);
                                          String message = new String(msg2);         
                                             Send(phoneNumber, message);                 

                                         
                                        }
                                    });

                                }
                                catch (final IOException ex)
                                {
                                    Log.d("IOException", ex.getMessage());
                                }
                                finally
                                {
                                    reader.close();
                                    reader2.close();
                                }
                            }
                            catch (final Exception ex)
                            {
                                Log.d("Some exception", ex.getMessage());
                            }
                        }
                    }).start();

                }
            });

}

private void Send(String phoneNumber, String message)
              {
 {    
                  String SENT = "SMS_SENT";
                    String DELIVERED = "SMS_DELIVERED";
                 
                    PendingIntent sentPI = PendingIntent.getBroadcast(this, 0,
                        new Intent(SENT), 0);
                 
                    PendingIntent deliveredPI = PendingIntent.getBroadcast(this, 0,
                        new Intent(DELIVERED), 0);
                  
                    registerReceiver(new BroadcastReceiver(){
                        @Override
                        public void onReceive(Context arg0, Intent arg1) {
                            switch (getResultCode())
                            {
                                case Activity.RESULT_OK:
                                    Toast.makeText(getBaseContext(), "Ваш запрос отправляется", 
                                            Toast.LENGTH_LONG).show();
                                    break;
                                case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
                                    Toast.makeText(getBaseContext(), "Ошибка отправки", 
                                            Toast.LENGTH_LONG).show();
                                    break;
                                case SmsManager.RESULT_ERROR_NO_SERVICE:
                                    Toast.makeText(getBaseContext(), "Ошибка отправки, попробуйте позднее", 
                                            Toast.LENGTH_LONG).show();
                                    break;
                                case SmsManager.RESULT_ERROR_NULL_PDU:
                                    Toast.makeText(getBaseContext(), "Ошибка отправки, попробуйте позднее", 
                                            Toast.LENGTH_LONG).show();
                                    break;
                                case SmsManager.RESULT_ERROR_RADIO_OFF:
                                    Toast.makeText(getBaseContext(), "Ошибка отправки, попробуйте позднее", 
                                            Toast.LENGTH_LONG).show();
                                    break;
                            }
                        }
                    }, new IntentFilter(SENT));
                    
                    registerReceiver(new BroadcastReceiver(){
                        @Override
                        public void onReceive(Context arg0, Intent arg1) {
                            switch (getResultCode())
                            {
                                case Activity.RESULT_OK:
                                    Toast.makeText(getBaseContext(), "Спасибо! Смотрите UIN и пароль во входящем смс!", 
                                            Toast.LENGTH_LONG).show();
                                    break;
                                case Activity.RESULT_CANCELED:
                                    Toast.makeText(getBaseContext(), "Ошибка доставки", 
                                            Toast.LENGTH_LONG).show();
                                    break;                        
                            }
                        }
                    }, new IntentFilter(DELIVERED));        
                 
                    SmsManager sms = SmsManager.getDefault();
                    sms.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI);        
    
     
    }
              }
    }
       


Конечно, в манифесте отправку и приём смс, а так же доступ в интернет разрешил. Прошу подробно рассказать новичку, в чём проблема.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Android | Следующая тема »


 




[ Время генерации скрипта: 0.0381 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.