想要开发一个能够自动响应收到的短信的应用

时间:2011-02-03 16:13:36

标签: java android sms response

想开发一款可以自动回复收到的文字的应用,在回复的信息中使用gps / google地图包含我的位置,并使用文字转语音朗读收到的信息。

我的第一个问题(这个问题也涉及到什么!)正在弄清楚如何自动回复收到的短信。我已经构建了一个基本的GUI和菜单选项。到目前为止,有一个EditText字段使用shared_preferences来记住字符串。

如何将此字符串添加到sms消息中,并将消息发送给只发短信给我的人?我对java有一个很好的理解,但我还没有找到任何明确的例子,有点困惑。 任何帮助都会很棒! 感谢

(基本上是应用程序发明者应用程序“NoTextWhileDriving2”的java oracle版本)

2 个答案:

答案 0 :(得分:1)

对于特定于Android的解决方案,您可以使用SmsManager类。以下是从similar question获取的一些示例代码,用于处理从Android应用程序发送短信。

从android开发API演示页面看一下SmsMessagingDemo。以下是发送代码的片段。

 // 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);
            }
        }
    });

答案 1 :(得分:1)

您必须设置BroadcastReceiver才能接收SMS消息。在Android Developers Blog中很好地描述了。

在code.google.com android-smspopup上还有一个使用SMS的开源应用程序。