Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/26: Рейтинг темы: голосов - 26, средняя оценка - 4.92
 Аватар для vovken1997
16 / 14 / 1
Регистрация: 08.07.2012
Сообщений: 192

Приём СМС

16.11.2014, 17:19. Показов 4951. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Уже не первый день пытаюсь прочитать своим приложением входящее сообщение, но безрезультатно. На гаджете вообще программа никак не реагирует, а эмулятор вылетает со словами "Unfortunately, sms has stopped"
Вроде бы всё делал по видео: http://youtu.be/op_7cUKceaA

Помогите пожалуйста разобраться в чём проблема)

Манифест:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.sms"
    android:versionCode="1"
    android:versionName="1.0" >
 
    <uses-sdk
        android:minSdkVersion="10"
        android:targetSdkVersion="17" />
    <uses-permission android:name="android.permission.RECEIVE_SMS" />
    <uses-permission android:name="android.permission.SEND_SMS" />
    <uses-permission android:name="android.permission.WRITE_SMS" />
    <uses-permission android:name="android.permission.READ_SMS" />
     
   
    
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        
         <receiver android:name="SMSMonitor">
            <intent-filter android:priority="100">
            <action android:name="android.provider.Telephony.SMS_RECEIVED"/>
            </intent-filter>
        </receiver>
    </application>
 
</manifest>
MainActivity.java:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
public class MainActivity extends ActionBarActivity {
 
     Button btnSendSMS; 
     EditText txtPhoneNo; 
     EditText txtMessage; 
     TextView txt;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        btnSendSMS = (Button) findViewById(R.id.button1); 
        txtPhoneNo = (EditText) findViewById(R.id.editText1); 
        txtMessage = (EditText) findViewById(R.id.editText2);
        txt = (TextView) findViewById(R.id.textView1);
         
         btnSendSMS.setOnClickListener(new View.OnClickListener() 
         { 
             public void onClick(View v) 
             { 
                 String phoneNo = txtPhoneNo.getText().toString();
                 String message = txtMessage.getText().toString();
                 if (phoneNo.length()>0 && message.length()>0) 
                     sendSMS(phoneNo, message); 
                 else Toast.makeText(getBaseContext(), "Please enter both phone number and message.", Toast.LENGTH_SHORT).show(); 
                 } 
             }); 
    }
 
     private void sendSMS(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); 
         
         SmsManager sms = SmsManager.getDefault(); 
         sms.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI); 
         
         
    } 
 
    
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
 
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}
SMSReciever.java:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public class SMSReceiver extends BroadcastReceiver {
 
    @Override
    public void onReceive(Context context, Intent intent) {
        Bundle bundle = intent.getExtras();
        SmsMessage[] messages = null;
        String str = "";
        if(bundle != null)
        {
            Object[] pdus = (Object[]) bundle.get("pdus");
            messages = new SmsMessage[pdus.length];
            for(int i=0; i<messages.length; i++)
            {
                messages[i]=SmsMessage.createFromPdu((byte[])pdus[i]);
                str += "Messafe from "+messages[i].getOriginatingAddress();
                str += " :";
                str += messages[i].getMessageBody();
                str += "\n";
            }
            Toast.makeText(null, str, Toast.LENGTH_LONG).show();
 
        }
    }
 
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.11.2014, 17:19
Ответы с готовыми решениями:

Как задать определённый номер на отправку смс и приём смс
Подскажите, что нужно добавить или переделать чтобы можно было принимать смс строго с определённого номера, а так же как задать...

СМС менеджер или блокиратор СМС по содержимому
вообщем пишу приложение, которое(смс менеджер или блокиратор смс по содержимому), натолкнулся на проблему которою уже давненько не могу...

Как организовать прием СМС сообщений на сервере и чтоб пользователи могли читать их на компе
Добрый день всем! Никто не сталкивался с такой задачей: организовать прием СМС сообщений на сервере и чтоб пользователи могли читать их на...

4
4 / 4 / 2
Регистрация: 03.02.2013
Сообщений: 31
16.11.2014, 18:01
Посмотри тут, http://habrahabr.ru/post/149555/
там все понятно написано и есть ссылка на готовый проект
1
 Аватар для vovken1997
16 / 14 / 1
Регистрация: 08.07.2012
Сообщений: 192
16.11.2014, 21:00  [ТС]
Не, нифига не работает.
Java
1
public void onReceive(Context context, Intent intent) {
Этот метод просто не вызывается((
Если у кого-нибуть есть нормальный исходник, киньте пожалуйста)
0
4 / 4 / 2
Регистрация: 03.02.2013
Сообщений: 31
16.11.2014, 23:14
а ты уверен, что onReceive не вызывается? Пропиши в нем логи и проверь, все должно работать. Твой toast не будет работать так как ты ему не передаешь контекст и вообще не надо тосты вызывать в BroadcastReceiver
1
 Аватар для vovken1997
16 / 14 / 1
Регистрация: 08.07.2012
Сообщений: 192
17.11.2014, 21:07  [ТС]
GerNik, проверил через лог, там ничего. Написал первой командой в BroadcastReceiver и ничего( лог чистый...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.11.2014, 21:07
Помогаю со студенческими работами здесь

Асинхронные сокеты: Как организовать разделение на прием сообщений и прием файлов
Изучив синхронные сокеты, перешел к изучению асинхронных. Столкнулся вот с чем, как, используя асинхронные сокеты, сделать на стороне...

Память для смс переполнена, но на самом деле смс не так много
Добрый день! Мой мобильный телефон samsung gt-e2252(не смартфон). у него быстро переполняется память для смс. В настройках показано, что...

Отправка СМС с USB модема. Ограничение в 56 символов на смс. Что делать?
Доброго времени суток уважаемые форумчане. Недавно возникла задача написания программы для отправки смсок через модем. Так как сам в...

Перехват и обработка входящих смс + отправка заготовленного смс с приложения
Перехват и обработка входящих смс + отправка заготовленного смс с приложения Подскажите кто сталкивался , Такое возможно на iOS ...

смс биллинг с вводом номера в форму и ответным смс
Приветствую всех. Знает ли кто нибудь надежный смс биллинг, который имеют услугу смс замок по следующей схеме: Пользователь вводит свой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Киев стоит - украинская песня
zorxor 28.01.2026
wfWdiRqdTxc О Господи, Вечный, Ты . . . Я помоги, Бесконечный. . . Я прошу Ты. . . Я погибаю, спаси. . . Я прошу Тебя Вечный. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru