안녕하세요

 

문자 메시지가오면 메지지 내용안에 특정문자(ad)가 포함되어 있다면 해당 어플리케이션을 실행하도록 하는 어플을 만들고 있습니다.

 

그런데 문자열 파싱작업이 잘 되지않네요... 배열을 String으로 바꾸고 contains로 비교하는 방법이  틀린건가요,,??도와주세요 ㅠ

 

public class SmsReceiver extends BroadcastReceiver {
   
 private static final String TAG = DEBUG_TAG;
    private static final String ACTION = "android.provider.Telephony.SMS_RECEIVED";
    private static final String Test = "ad";
    String test = null;
   @Override
   public void onReceive(Context context, Intent intent) {
        
    Log.d(TAG, "[inside onReceive] ");
    
    if (intent.getAction().equals(ACTION)) {
            
          StringBuilder sb = new StringBuilder();
            Bundle bundle = intent.getExtras();
                                 
            if (bundle != null) {
                Object[] pdusObj = (Object[]) bundle.get("pdus");
                SmsMessage[] messages = new SmsMessage[pdusObj.length];
                for (int i = 0; i<pdusObj.length; i++) {
                    messages[i] = SmsMessage.createFromPdu ((byte[]) pdusObj[i]);
                    test = messages[i].toString();
             

          // 문자열 파싱하는 부분
                    if(test.contains(Test)){                                    
                     //All Messages.
                        for (SmsMessage currentMessage : messages){
                              sb.append("Sender : ");
                              // Sender-Number
                              sb.append(currentMessage.getDisplayOriginatingAddress());
                              sb.append("\n----Message----\n");
                              // Actual Message-Content
                              sb.append(currentMessage.getDisplayMessageBody());
                                             
                     Toast.makeText(context, sb.toString(), Toast.LENGTH_LONG).show();
                        }
                     }                   
                }
                   Log.d(TAG, "[SMSApp Bundle] " + bundle.toString());
                          
             }
             // Logger Debug-Output
             Log.d(TAG, "[SMSApp] onReceiveIntent: " + sb);

             // Show the Notification containing the Message.
             Toast.makeText(context, "실패", Toast.LENGTH_LONG).show();
            
             abortBroadcast();
        /*    
             // Start the Main-Activity
             Intent i = new Intent(context, Main.class);
            // New Activity;
             i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
             context.startActivity(i);
             */
        }
   }
}