Хотите разработать приложение, которое может автоматически отвечать на полученные смс - PullRequest
1 голос
/ 03 февраля 2011

хочу разработать приложение, которое может автоматически отвечать на полученный текст, включать мое местоположение с помощью gps / google maps в возвращенное сообщение и считывать полученное сообщение с использованием текста в речь.

Моя первая проблема(что касается и этого вопроса!) выясняет, как автоматически отвечать на полученные смс-сообщения.Я построил базовый графический интерфейс и пункт меню.Существует поле EditText, которое использует shared_preferences для запоминания строки до сих пор.

Как мне добавить эту строку в смс-сообщение и заставить отправлять сообщения тому, кто только что написал мне?У меня есть приличное понимание Java, но я не собирался находить какие-либо четкие примеры и немного запутался.Любая помощь будет отличной!Спасибо

(в основном, Java-версия приложения-изобретателя приложения NoTextWhileDriving2) *

Ответы [ 2 ]

1 голос
/ 03 февраля 2011

Вам необходимо настроить BroadcastReceiver для получения SMS-сообщений. Очень красиво описано в Блоге разработчиков Android .

Существует также приложение с открытым исходным кодом, работающее с SMS на code.google.com android-smspopup .

1 голос
/ 03 февраля 2011

Для решения для Android вы можете использовать класс SmsManager . Вот пример кода, взятого из аналогичного вопроса , который касается отправки смс-сообщения из приложения для Android.

Посмотрите SmsMessagingDemo на демонстрационной странице API разработки для Android. Ниже приведен фрагмент кода отправки.

 // Watch for send button clicks and send text messages.
    Button sendButton = (Button) findViewById(R.id.sms_send_message);
    sendButton.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            if (TextUtils.isEmpty(recipientTextEdit.getText())) {
                Toast.makeText(SmsMessagingDemo.this, "Please enter a message recipient.",
                        Toast.LENGTH_SHORT).show();
                return;
            }

            if (TextUtils.isEmpty(contentTextEdit.getText())) {
                Toast.makeText(SmsMessagingDemo.this, "Please enter a message body.",
                        Toast.LENGTH_SHORT).show();
                return;
            }

            recipientTextEdit.setEnabled(false);
            contentTextEdit.setEnabled(false);

            SmsManager sms = SmsManager.getDefault();

            List<String> messages = sms.divideMessage(contentTextEdit.getText().toString());

            String recipient = recipientTextEdit.getText().toString();
            for (String message : messages) {
                sms.sendTextMessage(recipient, null, message, PendingIntent.getBroadcast(
                        SmsMessagingDemo.this, 0, new Intent(ACTION_SMS_SENT), 0), null);
            }
        }
    });
...