문자를 받으면 기존의 문자보다 먼저 접근하여 해당 문자(@#gangdroid#@)가 있나 확인한후 맞다면
해당 어플을 실행하고 틀리다면 기존의 문자메세지에 저장되는 것을 만들고 있습니다.
1. 문자내용중에 해당 문자(@#gangdroid#@)를 파싱해와야 되는데 잘안되네요... 해당문자가 없어도 토스트로 띄워져요 ㅠ
2. 문자에 해당 문자가 없다면 기존의 문자로 들어가는부분 (else if)부분코드 내용을 잘 모르겠습니다.
SMS타입의 배열이기 때문에 String으로 변환하였습니다. 도와주세요 ㅠ
public void onReceive(Context context, Intent intent) {
Log.d(TAG, "SmsMessageReceiver: received a message");
Bundle bundle = intent.getExtras();
SmsMessage[] msgs = null;
//pdus는 메세지의 규격
Object[] pdus = (Object[]) bundle.get("pdus");
msgs = new SmsMessage[pdus.length];
StringBuffer buffer = new StringBuffer();
if (bundle != null) {
//임의로 한것...
String idx = "@#gangdroid#@";
//인덱스 번호 확인후 맞다면
if (idx.equalsIgnoreCase("@#gangdroid#@")){
for (int i=0; i<msgs.length; i++){
msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
buffer.append(msgs[i].getOriginatingAddress());
buffer.append(":");
buffer.append(msgs[i].getMessageBody().toString());
buffer.append("\n");
//토스트 메시지
Toast.makeText(context, buffer.toString(), Toast.LENGTH_SHORT).show();
}
//인덱스 번호가 아니라면
}else if(!idx.equalsIgnoreCase("@#gangdroid#@")){
}
}
}




임의로 한것을 지우고 SMS받아와서 딱 저 문자만 있을 때 실행이 되는지 확인하셨나요.
지금 실행하면 당연히 토스트가 계속 뜰 텐데.
문자 문자열 중에 저 문자가 있는지 확인하시려면 정규식 같은걸 쓰셔야 하지 않을까 싶네요.