首先,不是母语为英语的人。
我使用默认代码使我的.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”声明...如果没用就让我的别人...
一些信息?
在您的代码中,您正在检查是否为真:
String case2 = "@#*";
else if(smsBody.matches(case2))
如果字符串与正则表达式匹配,则该方法匹配检查。
“*”是正则表达式的特殊字符。我不知道你的情况是什么是smsBody,但可能是因为“*”字符,它使这个陈述错误。
如果你只是想看看是否是完全相同的字符串,我建议你使用方法equals:
else if(smsBody.equals(case2))