말 그대로 문자의 내용을 인식하는 앱을 만들고 싶습니다.
SMS_Receiver 와 BroadcastReceive 등등 이용해서 문자를 받게 되면 그 문자 내용과 수신자를 표시해주는 앱을 만드는 것에는 성공했습니다. 이 상태에서 문자가 왔을 때 문자 내용중에 특정 키워드가 있을 경우 실행되게 하고 싶습니다.
만드는 중에 시험해보고 싶어도 어떤 문자를 받든 죄다 실행되어버려서... 많이 어렵네요. 도와주세요!!!
자동실행 클래스
public class AutoRun extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if(action.equals("android.provider.Telephony.SMS_RECEIVED")){
Intent ii = new Intent(context, MainActivity.class);
ii.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(ii);
}
}
}
문자받는 클래스
public class SimpleSmsReciever extends BroadcastReceiver {
private static final String TAG = "Message recieved";
@Override
public void onReceive(Context context, Intent intent) {
Bundle pudsBundle = intent.getExtras();
Object[] pdus = (Object[]) pudsBundle.get("pdus");
SmsMessage messages =SmsMessage.createFromPdu((byte[]) pdus[0]);
// Log.i(TAG, messages.getMessageBody());
// Todo : Start Application's MainActivty activity
// Todo : Send Message And Number In Activity
Intent smsIntent=new Intent(context,SMS_Receive.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
smsIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
smsIntent.putExtra("MessageNumber", messages.getOriginatingAddress());
smsIntent.putExtra("Message", messages.getMessageBody());
context.startActivity(smsIntent);
String action = intent.getAction();
if(action.equals("%인식%)")) {
Intent iii = new Intent(context, MainActivity.class);
iii.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(iii);
// Todo : Show Message In Toast
}
Toast.makeText(context, "SMS Received From :"+messages.getOriginatingAddress()+"\n"+ messages.getMessageBody(), Toast.LENGTH_LONG).show();
}
}
여기서 '%인식%' 이런식으로 문자열을 인식하면 실행되도록 하고싶습니다.