Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.71
vovken1997
15 / 13 / 1
Регистрация: 08.07.2012
Сообщений: 190
#1

Приём СМС - Программирование Android

16.11.2014, 17:19. Просмотров 1976. Ответов 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();
 
        }
    }
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.11.2014, 17:19     Приём СМС
Посмотрите здесь:

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

Приём данных по Bluetooth - Программирование Android
Из Arduino посылается строка xx|xx|xx|xx|xx,xxxx|\n, где х-любое число. На андроиде получаю: х| x| x| x| итд. Подскажи как...

Приём сообщений от сервера в фоне - Программирование Android
Привет, нужна помощь в структуре. Первый раз работаю с подключением. В общем к делу: 1.Отправляю запрос на сервер 2.У меня есть...

Приём текста по Bluetooth. Ошибки в символах - Программирование Android
Добрый день. Прошу особо не пинать. Вопрос чисто технический. Второй день ищу по поисковикам, заметил что не я один сталкивался с...

Чтение смс - Программирование Android
Здравствуйте. Возникла такая проблема. Необходимо написать приложение на андроид с одной кнопкой, при нажатии на которую оно читало...

Отправка смс - Программирование Android
Всем привет. Есть магазин по продаже ICQ номеров разной длины. Суть в том, что бы пользователь андроида QR кодом скачивал приложение,...

Обработка смс - Программирование Android
Приветствую. Есть необходимость в сабже. Нашел в нете статью, с похожими вводными данными - так же требуется отслеживать поступление смс...

Реакция на смс - Программирование Android
Всем привет! Ребята спасайте, срочно нужно написать приложение на андроид, чтобы происходила определенная реакция на смс, в данном случае...

Отправка длинного СМС - Программирование Android
Здравствуйте. Каким способом можно отправить длинное СМС сообщение. В данный момент отправляю так ...

Конвертирование email в смс - Программирование Android
Господа знатоки, решил написать программу отправки смс через email, но на просторах интернета не где не могу найти информации о...

Проверка смс на содержимое - Программирование Android
Подскажите как сделать проверку смс на содержимое? Класс принимающий смс: package com.example.dda.sms; import...

Вывод смс в textView - Программирование Android
Добрый день:handshake: Уже пару дней не могу разобраться с кодом. Половина кода, была свиснута с этого видео...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
GerNik
4 / 4 / 2
Регистрация: 03.02.2013
Сообщений: 31
16.11.2014, 18:01     Приём СМС #2
Посмотри тут, http://habrahabr.ru/post/149555/
там все понятно написано и есть ссылка на готовый проект
vovken1997
15 / 13 / 1
Регистрация: 08.07.2012
Сообщений: 190
16.11.2014, 21:00  [ТС]     Приём СМС #3
Не, нифига не работает.
Java
1
public void onReceive(Context context, Intent intent) {
Этот метод просто не вызывается((
Если у кого-нибуть есть нормальный исходник, киньте пожалуйста)
GerNik
4 / 4 / 2
Регистрация: 03.02.2013
Сообщений: 31
16.11.2014, 23:14     Приём СМС #4
а ты уверен, что onReceive не вызывается? Пропиши в нем логи и проверь, все должно работать. Твой toast не будет работать так как ты ему не передаешь контекст и вообще не надо тосты вызывать в BroadcastReceiver
vovken1997
15 / 13 / 1
Регистрация: 08.07.2012
Сообщений: 190
17.11.2014, 21:07  [ТС]     Приём СМС #5
GerNik, проверил через лог, там ничего. Написал первой командой в BroadcastReceiver и ничего( лог чистый...
Yandex
Объявления
17.11.2014, 21:07     Приём СМС
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru