/******************************************************************************* * Created by Orlando Aliaga * Copyright 2015 Prey Inc. All rights reserved. * License: GPLv3 * Full license at "/LICENSE" ******************************************************************************/ package com.prey.receivers; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.telephony.SmsMessage; import com.prey.PreyConfig; import com.prey.PreyLogger; import com.prey.actions.sms.SMSUtil; import com.prey.actions.sms.SmsThread; public class SmsReceiver extends BroadcastReceiver { static final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED"; static final String SMS_DELIVER = "android.provider.Telephony.SMS_DELIVER"; @Override public void onReceive(Context context, Intent intent) { // PreyLogger.d("SMS Broadcast - Action received: " + // intent.getAction()); if (intent.getAction() != null && (intent.getAction().equals(SMS_RECEIVED)||intent.getAction().equals(SMS_DELIVER))) { // ---get the SMS message passed in--- Bundle bundle = intent.getExtras(); // String str = ""; if (bundle != null) { // ---retrieve the SMS message received--- Object[] pdus = (Object[]) bundle.get("pdus"); for (int i = 0; i < pdus.length; i++) { SmsMessage currentMessage = SmsMessage.createFromPdu((byte[]) pdus[i]); String messageBody = currentMessage.getMessageBody(); String phoneNumber = currentMessage.getDisplayOriginatingAddress(); String displayMessageBody = currentMessage.getDisplayMessageBody(); PreyLogger.i("senderNum: " + phoneNumber + "; message: " + displayMessageBody); executeActions(context, messageBody,displayMessageBody, phoneNumber); } // end for loop } } } private void executeActions(Context ctx, String messageBody,String displayMessageBody, String phoneNumber) { if (PreyConfig.getPreyConfig(ctx).getPinNumber() >= 0) { if (SMSUtil.isValidSMSCommand(displayMessageBody)) { this.abortBroadcast(); new SmsThread(ctx, displayMessageBody, phoneNumber).start(); } } } }