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

Как "слушать и читать" SMS c определенного номера? - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Посоветуйте уроки Android http://www.cyberforum.ru/android-dev/thread1410173.html
Вообще не могу разобраться с XML разметкой, на разных устройствах отображается по разному. Help me!
Программирование Android В ListView не получается нормально вывести текст При выводе текста в ListView получается непонятный текст,а не русский язык Помогите Заранее спасибо) http://www.cyberforum.ru/android-dev/thread1410019.html
Программирование Android Перед звонком как выбрать с какого номера звонить?
Здравствуйте, не могу понять как сделать что бы перед звонком выбирать с какого номера звонить, телефон на 2 симки, программа у меня выводит список номеров, но при использовании Intent dialIntent =...
Обновление ресурсов приложения (замена картинок в скачанных приложениях) Программирование Android
Всем привет! Подскажите, в каком направлении искать решение следующей проблемы: после выпуска приложения нужно будет заменить часть картинок в нем. То есть сейчас, условно, под именем pic1 в папке...
Программирование Android Google Map на устройстве http://www.cyberforum.ru/android-dev/thread1409780.html
Здраствуйте Столкнулся с проблемой отображения гугл карт. Про компилировании кода с андроид студии в емулятор генемоушен карта роботает привосходно. но вот когда создаю АПК карта перестаёт...
Программирование Android Всем доступная директория Добрый день. Что имею: При авторизации проверяю наличие новой версии, если таковая имеется необходимо ее скачать и запустить. Создаю файл при возможности на флешке: file = new File(... подробнее

Показать сообщение отдельно
disx
22 / 22 / 0
Регистрация: 26.02.2014
Сообщений: 552
Записей в блоге: 1
02.04.2015, 17:44  [ТС]
fgtmenow, спасибо, чета именно это не попадалось, со ссылкой ознакомился но имеются еще вопросы, вобщем накропал такой класс:

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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.graphics.Color;
import android.os.Bundle;
import android.telephony.SmsMessage;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
 
public class MainActivity extends Activity {
    public static final String APP_PREFERENCES = "myNumber";
    public static final String APP_PREFERENCES_NAME = "Nickname"; // phone
                                                                    // number
    private static final int DIAL = 0;
    SharedPreferences mSettings;
    private TextView text;
    Button btnmap;
    private static final String TAG = null;
    long SMSlongtitude, SMSlatitude;
    EditText messageNumber, et;
    String smsText, smsText1, smsText2;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
 
        et = (EditText) findViewById(R.id.editText1);
        mSettings = getSharedPreferences(APP_PREFERENCES, Context.MODE_PRIVATE);
        messageNumber = (EditText) findViewById(R.id.et_number);
        messageNumber.setOnLongClickListener(new View.OnLongClickListener() {
 
            @Override
            public boolean onLongClick(View v) {
                // TODO Auto-generated method stub
                showDialog(DIAL);
                return false;
            }
 
        });
        //-----Перенос полученных из SMS координат и запуск GoogleMaps-----------------------
        btnmap = (Button) findViewById(R.id.btn_send);
        if (mSettings.contains(APP_PREFERENCES_NAME)) {
            messageNumber
                    .setText(mSettings.getString(APP_PREFERENCES_NAME, ""));
        }
        btnmap.setOnClickListener(new OnClickListener() {
 
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
 
            }
        });
        ReadyMap(SMSlongtitude, SMSlatitude);
        
        
//      Toast toast = Toast.makeText(
//              getApplicationContext(), /*тело SMS*/,
//              Toast.LENGTH_LONG);
//      toast.show();
    }// -------------End------onCreate---------------------------
 
    // -------------Метод сообщающий о получении данных из SMS-----
    private void ReadyMap(long SMSlongtitude, long SMSlatitude) {
        if (SMSlongtitude != 0 || SMSlatitude != 0) {
            smsText1 = String.valueOf(SMSlongtitude);
            smsText2 = String.valueOf(SMSlatitude);
            btnmap.setBackgroundColor(Color.GREEN);
        } else {
 
            btnmap.setBackgroundColor(Color.RED);
        }
    }
 
    // ------------------------Работа со входящими
    // SMS---------------------------------------
    public class MessageReceiver extends BroadcastReceiver {
 
        public void onReceive(Context context, Intent intent) {
            Bundle pudsBundle = intent.getExtras();
            Object[] pdus = (Object[]) pudsBundle.get("pdus");
            SmsMessage messages = SmsMessage.createFromPdu((byte[]) pdus[0]);
            Log.i(TAG, messages.getMessageBody());
            
            if (messages.getMessageBody().contains("Hi")) {
                abortBroadcast();
            }
        }
    }
 
    // -------------------END---------Работа со входящими
    // SMS--------------------------------------
 
    // ------------------Диалог ввода/изменения телефонного
    // номера------------------
    protected void onPrepareDialog(int id, Dialog dialog) {
        super.onPrepareDialog(id, dialog);
        // new LockOrientation(this).lock();
        // removeDialog(id);
    }
 
    protected Dialog onCreateDialog(int id) {
 
        switch (id) {
        case DIAL:
            LayoutInflater inflater = LayoutInflater.from(this);
 
            View root = inflater.inflate(R.layout.dialogset, null);
 
            // final EditText textName = (EditText)
            // root.findViewById(R.id.et_number);
            final EditText textName2 = (EditText) root
                    .findViewById(R.id.editText1);
            String str = messageNumber.getText().toString();
            textName2.setText(str);
            // textName.getText();
 
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setView(root);
            builder.setTitle(R.string.edit_record);
            builder.setPositiveButton("Сохранить",
                    new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int id) {
                            String name = textName2.getText().toString();
 
                            messageNumber.setText(name);
 
                            dialog.cancel();
 
                        }
 
                    });
 
            builder.setCancelable(true);
 
            return builder.create();
        default:
            return null;
 
        }
 
    }
 
    // -----------END-------Диалог ввода/изменения телефонного
    // номера------------------
 
    @Override
    protected void onDestroy() {
        super.onDestroy();
        String strNickName = messageNumber.getText().toString(); // здесь
                                                                    // содержится
                                                                    // текст,
                                                                    // введенный
                                                                    // в
                                                                    // текстовом
                                                                    // поле
        Editor editor = mSettings.edit();
        editor.putString(APP_PREFERENCES_NAME, strNickName);
        editor.commit();
    }
}
в манифесте из примера по ссылке внес это :
Java
1
2
3
4
5
6
 <intent-filter android:priority="999">
        <action android:name="android.provider.Telephony.SMS_RECEIVED"></action>
    </intent-filter>
 
<receiver android:name="com.encima.smsreceiver.MessageReceiver" android:exported="true">
</receiver>
<receiver подчеркивает желтым и пишет "Exported receiver does not require permission" это что значит?

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