Browse Source

send SMS on fcm data msg received

pull/1/head
isra el 4 years ago
parent
commit
7c5b94dfa5
  1. 2
      app/build.gradle
  2. 4
      app/src/main/AndroidManifest.xml
  3. 2
      app/src/main/java/com/vernu/sms/helpers/SMSHelper.java
  4. 11
      app/src/main/java/com/vernu/sms/models/SMSPayload.java
  5. 19
      app/src/main/java/com/vernu/sms/services/FCMService.java
  6. 1
      build.gradle

2
app/build.gradle

@ -41,4 +41,6 @@ dependencies {
implementation 'com.google.firebase:firebase-analytics' implementation 'com.google.firebase:firebase-analytics'
implementation 'com.google.firebase:firebase-messaging' implementation 'com.google.firebase:firebase-messaging'
implementation 'com.google.firebase:firebase-messaging-directboot' implementation 'com.google.firebase:firebase-messaging-directboot'
implementation 'com.google.code.gson:gson:2.9.0'
} }

4
app/src/main/AndroidManifest.xml

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.vernu.sms"> package="com.vernu.sms">
<uses-permission android:name="android.permission.SEND_SMS" /> <uses-permission android:name="android.permission.SEND_SMS" />
<application <application
android:allowBackup="true" android:allowBackup="true"
@ -13,6 +14,9 @@
android:name=".services.FCMService" android:name=".services.FCMService"
android:exported="false" android:exported="false"
android:directBootAware="true"> android:directBootAware="true">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service> </service>
<activity <activity
android:name="com.vernu.sms.activities.MainActivity" android:name="com.vernu.sms.activities.MainActivity"

2
app/src/main/java/com/vernu/sms/helpers/SMSHelper.java

@ -3,7 +3,7 @@ package com.vernu.sms.helpers;
import android.telephony.SmsManager; import android.telephony.SmsManager;
public class SMSHelper { public class SMSHelper {
private static void sendSMS(String phoneNo, String message){
public static void sendSMS(String phoneNo, String message) {
SmsManager smsManager = SmsManager.getDefault(); SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(phoneNo, null, message, null, null); smsManager.sendTextMessage(phoneNo, null, message, null, null);
} }

11
app/src/main/java/com/vernu/sms/models/SMSPayload.java

@ -0,0 +1,11 @@
package com.vernu.sms.models;
public class SMSPayload {
public String[] receivers;
public String smsBody;
public SMSPayload(String[] receivers, String smsBody) {
this.receivers = receivers;
this.smsBody = smsBody;
}
}

19
app/src/main/java/com/vernu/sms/services/FCMService.java

@ -8,13 +8,17 @@ import android.content.Intent;
import android.media.RingtoneManager; import android.media.RingtoneManager;
import android.net.Uri; import android.net.Uri;
import android.os.Build; import android.os.Build;
import android.util.Log;
import androidx.core.app.NotificationCompat; import androidx.core.app.NotificationCompat;
import com.google.firebase.messaging.FirebaseMessagingService; import com.google.firebase.messaging.FirebaseMessagingService;
import com.google.firebase.messaging.RemoteMessage; import com.google.firebase.messaging.RemoteMessage;
import com.google.gson.Gson;
import com.vernu.sms.R; import com.vernu.sms.R;
import com.vernu.sms.activities.MainActivity; import com.vernu.sms.activities.MainActivity;
import com.vernu.sms.helpers.SMSHelper;
import com.vernu.sms.models.SMSPayload;
public class FCMService extends FirebaseMessagingService { public class FCMService extends FirebaseMessagingService {
@ -25,14 +29,25 @@ public class FCMService extends FirebaseMessagingService {
@Override @Override
public void onMessageReceived(RemoteMessage remoteMessage) { public void onMessageReceived(RemoteMessage remoteMessage) {
Log.d("FCM_MESSAGE", remoteMessage.getData().toString());
Gson gson = new Gson();
SMSPayload smsPayload = gson.fromJson(remoteMessage.getData().get("smsData"), SMSPayload.class);
// Check if message contains a data payload. // Check if message contains a data payload.
if (remoteMessage.getData().size() > 0) { if (remoteMessage.getData().size() > 0) {
sendNotification("data msg", "msg boody");
// sendNotification("data msg received ", remoteMessage.getData().toString());
int len = smsPayload.receivers.length;
if (len > 0) {
for (int i = 0; i < len; i++) {
SMSHelper.sendSMS(smsPayload.receivers[i], smsPayload.smsBody);
}
}
} }
// Check if message contains a notification payload. // Check if message contains a notification payload.
if (remoteMessage.getNotification() != null) { if (remoteMessage.getNotification() != null) {
sendNotification("notif msg", "msg body");
// sendNotification("notif msg", "msg body");
} }
} }

1
build.gradle

@ -3,7 +3,6 @@ plugins {
id 'com.android.application' version '7.1.2' apply false id 'com.android.application' version '7.1.2' apply false
id 'com.android.library' version '7.1.2' apply false id 'com.android.library' version '7.1.2' apply false
id 'com.google.gms.google-services' version '4.3.10' apply true id 'com.google.gms.google-services' version '4.3.10' apply true
} }
task clean(type: Delete) { task clean(type: Delete) {

Loading…
Cancel
Save