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

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

16.11.2014, 17:19. Просмотров 2401. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.11.2014, 17:19
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Приём СМС (Программирование Android):

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

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

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

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

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

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

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

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

Чтение смс
Здравствуйте. Возникла такая проблема. Необходимо написать приложение на...

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

Обработать смс
Доброго времени суток. Сбербанковский Квик (терминал для входа на Московскую...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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