Пример #1
0
  @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()));
    }
  }
Пример #2
0
 public void processMessage(BuildMessage msg) {
   myDelegateMessageHandler.processMessage(msg);
 }