首先,不是母语为英语的人。
我使用默认代码使我的.java工作...所以当它们来的时候用最新的短信刷新...
但我想使用它们......类似于以下示例:
public void onReceive(Context context, Intent intent) {
Bundle intentExtras = intent.getExtras();
if (intentExtras != null) {
Object[] sms = (Object[]) intentExtras.get(SMS_BUNDLE);
String smsMessageStr = "";
for (int i = 0; i < sms.length; ++i) {
String format = intentExtras.getString("format");
SmsMessage smsMessage = SmsMessage.createFromPdu((byte[]) sms[i], format);
String address = smsMessage.getOriginatingAddress();
String smsBody = smsMessage.getMessageBody().toString();
String case1 = "@#A";
String case2 = "@#*";
if(smsBody.matches(case1))
{
smsMessageStr += "De: " + address + "\n";
smsMessageStr += "Este mensaje es generado por el mensaje generico recibido,'@#A'" + "\n";
}
else if(smsBody.matches(case2))
{
smsMessageStr += "De: " + address + "\n";
smsMessageStr += "Este mensaje es generado por el mensaje generico recibido,'@#*'" + "\n";
}
else
{
smsMessageStr += "De: " + address + "\n";
smsMessageStr += smsBody + "\n";
}
}
if (MainActivity.active) {
MainActivity inst = MainActivity.instance();
inst.updateInbox(smsMessageStr);
} else {
Intent i = new Intent(context, MainActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}
如果匹配,它与“if(smsBody.matches(case1))”完美配合,但如果我发送带有smsbody == case2的msg,它只是给我“else”声明...制作我的否则如果没用......
一些信息?
答案 0 :(得分:0)
在您的代码中,您正在检查是否属实:
String case2 = "@#*";
else if(smsBody.matches(case2))
方法 匹配 检查字符串是否与正则表达式匹配。
&#34; *&#34;是正则表达式的特殊字符。我不知道你的情况是什么是smsBody,但可能是因为&#34; *&#34;字符,它使这个陈述错误。
如果你只是想看看是否是完全相同的字符串,我建议你使用方法equals:
else if(smsBody.equals(case2))