@Override public void onReceive(Context context, Intent intent) { preferencesManager = PreferencesManager.getInstance(context); String action = intent.getAction(); if (action.compareTo("android.provider.Telephony.SMS_RECEIVED") == 0) { // Check if the SMS trigger is enabled if (!preferencesManager.smsTriggerEnabled()) return; Bundle bundle = intent.getExtras(); SmsMessage[] messages = null; String message = ""; if (bundle != null) { Object[] pdus = (Object[]) bundle.get("pdus"); messages = new SmsMessage[pdus.length]; for (int i = 0; i < messages.length; i++) { messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]); message = messages[i].getMessageBody().toString(); String source = messages[i].getOriginatingAddress(); if (MessageHandler.processMessage(context, new SmsReceiver(), message, source)) // Drop the SMS message so it doesn't go to the user's inbox this.abortBroadcast(); } } } else { int resultCode = getResultCode(); String message = getResultData(); String source; if (intent.hasExtra("source")) source = intent.getStringExtra("source"); else // If there is no source in the intent, there is no way to send a reply return; if (intent.getAction().compareTo("com.dririan.RingyDingyDingy.COMMAND_HELP") == 0) message = context.getString(R.string.sms_help); else if (message == null) { switch (resultCode) { case Activity.RESULT_OK: message = context.getString(R.string.sms_success); break; case ApiHandler.RESULT_UNKNOWN_COMMAND: message = context.getString(R.string.sms_unknown_command); break; default: message = context.getString(R.string.sms_unknown_error); break; } } sendSms(context, source, message.replace("<code>", preferencesManager.getCode())); } }
public void processMessage(BuildMessage msg) { myDelegateMessageHandler.processMessage(msg); }