我是Android开发和java编程的新手。我只是想知道如果收到这个“确定”的消息,如何打印或显示某些文本。 我在网上得到了关于如何接收和阅读短信的代码。
ReadIncomingSms.java
package readnewsms.adk;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.telephony.SmsMessage;
import android.util.Log;
import android.widget.Toast;
public class IncomingSms extends BroadcastReceiver {
// Get the object of SmsManager
final SmsManager sms = SmsManager.getDefault();
public void onReceive(Context context, Intent intent) {
// Retrieves a map of extended data from the intent.
final Bundle bundle = intent.getExtras();
try {
if (bundle != null) {
final Object[] pdusObj = (Object[]) bundle.get("pdus");
for (int i = 0; i < pdusObj.length; i++) {
SmsMessage currentMessage = SmsMessage.createFromPdu((byte[]) pdusObj[i]);
String phoneNumber = currentMessage.getDisplayOriginatingAddress();
String senderNum = phoneNumber;
String message = currentMessage.getDisplayMessageBody();
Log.i("SmsReceiver", "senderNum: "+ senderNum + "; message: " + message);
// Show Alert
int duration = Toast.LENGTH_LONG;
Toast toast = Toast.makeText(context,
"senderNum: "+ senderNum + ", message: " + message, duration);
toast.show();
}
// end for loop
} // bundle is null
} catch (Exception e) {
Log.e("SmsReceiver", "Exception smsReceiver" +e);
}
}
}
然后我在toast.show()之后添加了这段代码;仍在循环内
if (message.equals(("1"))){
System.out.println("user sends 1");
} else {
System.out.println("other");
}
如何在屏幕上显示这些消息?或者如果消息包含某个值,我如何评估代码,然后我将根据发送的消息打印某个消息。例如,如果INCOMING消息包含1,则应用程序将显示用户发送1。
答案 0 :(得分:0)
使用:
if (message.contains("1")) {
//do something is message contains string '1' anywhere
Log.d("MYTAG", "user send 1");
}
或
if (message.equals("1")) {
//do something if the whole message equals to string '1'
Log.d("MYTAG", "user send 1");
}
阅读有关String方法的here。
要更新textView(假设您已在xml中定义了一个),请使用findViewById()找到它,然后使用:
myTextView.setText("user send 1")
您还可以在logcat中显示消息,因此不使用System.out.println(),而是使用:
Log.d("MYTAG", "user send 1");
或任何你想要的消息。有关布局的更多信息here
答案 1 :(得分:0)
看起来您想在屏幕上放置Toast
。这会在底部显示一条消息。代码如下所示:
if (message.equals(("1"))){
Toast toast = Toast.makeText(context, "User sent 1");
toast.show();
} else {
Toast toast = Toast.makeText(context, "Other);
toast.show();
}