diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5834b3bbc59858bf14b35a0555388240fed32c52..9b72289ee12082447dd19d2865bb7ac5dfdd72ac 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -2,8 +2,10 @@ <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.speedyapps.keepyousafe"> - <uses-permission android:name="android.permission.SEND_SMS"/> - <uses-permission android:name="android.permission.READ_CONTACTS"/> + <uses-permission android:name="android.permission.SEND_SMS" /> + <uses-permission android:name="android.permission.READ_CONTACTS" /> + <uses-permission android:name="android.permission.RECEIVE_SMS"> + <uses-permission android:name="android.permission.READ_SMS" /></uses-permission> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" @@ -21,7 +23,17 @@ <service android:name=".alarmService" android:enabled="true" - android:exported="true"></service> + android:exported="true" /> + <receiver android:name="com.speedyapps.keepyousafe.SMSReader$readSMS"> + <intent-filter> + <action android:name="android.provider.Telephony.SMS_RECEIVED" /> + </intent-filter> + </receiver> + <service + android:name=".SMSReader" + android:enabled="true" + android:exported="true"> + </service> </application> </manifest> \ No newline at end of file diff --git a/app/src/main/java/com/speedyapps/keepyousafe/MainActivity.java b/app/src/main/java/com/speedyapps/keepyousafe/MainActivity.java index 2991fa3fb9e19d2f9cbf4a0e82c38b90ee4d2463..c6742f015c5d4317c5d075a8bb80c69dfd364cf4 100644 --- a/app/src/main/java/com/speedyapps/keepyousafe/MainActivity.java +++ b/app/src/main/java/com/speedyapps/keepyousafe/MainActivity.java @@ -1,6 +1,7 @@ package com.speedyapps.keepyousafe; import android.content.Intent; +import android.support.annotation.MainThread; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.telephony.SmsManager; @@ -15,12 +16,15 @@ public class MainActivity extends AppCompatActivity { setContentView(R.layout.activity_main); intent = new Intent(MainActivity.this,alarmService.class); choice=0; + Intent serviceIntent = new Intent(MainActivity.this,SMSReader.class); + startService(serviceIntent); + } public void onClick(View view){ Log.i("zz",""+choice); switch(choice) { case 0: startService(intent); - sendSMS("9047570040e","Help Me!!!!"); + sendSMS("8606670880","Help Me!!!!"); break; case 1: stopService(intent); break; diff --git a/app/src/main/java/com/speedyapps/keepyousafe/SMSReader.java b/app/src/main/java/com/speedyapps/keepyousafe/SMSReader.java new file mode 100644 index 0000000000000000000000000000000000000000..2f5a14e7330f49e2628dee4044543ca343b9d5a6 --- /dev/null +++ b/app/src/main/java/com/speedyapps/keepyousafe/SMSReader.java @@ -0,0 +1,82 @@ +package com.speedyapps.keepyousafe; + +import android.app.Service; +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.os.Bundle; +import android.os.Handler; +import android.os.IBinder; +import android.telephony.SmsManager; +import android.telephony.SmsMessage; +import android.util.Log; +import android.widget.Toast; + +public class SMSReader extends Service { + public SMSReader() { + } + private static Context myContext; + @Override + public void onCreate() { + Toast.makeText(this, "Created Service", Toast.LENGTH_SHORT).show(); + super.onCreate(); + myContext = this; + } + + @Override + public IBinder onBind(Intent intent) { + // TODO: Return the communication channel to the service. + throw new UnsupportedOperationException("Not yet implemented"); + } + public static class readSMS extends BroadcastReceiver{ + @Override + public void onReceive(Context context, Intent intent) { + final SmsManager sms = SmsManager.getDefault(); + final Intent alarm = new Intent(myContext,alarmService.class); + // Retrieves a map of extended data from the intent. + final Bundle bundle = intent.getExtras(); + + try { + + if (bundle != null) { + + final Object[] pdusObj = (Object[]) bundle.get("pdus"); + + for (int i = 0; i < pdusObj.length; i++) { + + SmsMessage currentMessage = SmsMessage.createFromPdu((byte[]) pdusObj[i]); + String phoneNumber = currentMessage.getDisplayOriginatingAddress(); + + String senderNum = phoneNumber; + String message = currentMessage.getDisplayMessageBody(); + + Log.d("SmsReceiver", "senderNum: "+ senderNum + "; message: " + message); + int count=0; + Handler handler = new Handler(); + myContext.startService(alarm); + if(message.equals("Help Me!!!!")){ + handler.postDelayed(new Runnable() { + public void run() { + myContext.stopService(alarm); + + } + },5000); + } + + // Show alert + int duration = Toast.LENGTH_LONG; + Toast toast = Toast.makeText(context, "senderNum "+ senderNum + ", message: " + message, duration); + toast.show(); + + } // end for loop + } // bundle is null + + } catch (Exception e) { + Log.e("SmsReceiver", "Exception smsReceiver" +e); + + } + + + } + } +}