Sabir Hossain
Sabir Hossain

Reputation: 1205

Firebase push notifiaction not working when app is closed on some devices

I'm trying to send push notification from my app server to my app using Google cloud Messaging the app working well on Android Emulator but some devices not getting notification

here is FCMMessagingService.java

public class FCMMessagingService extends FirebaseMessagingService {

String title;String message;

@Override
public void onMessageReceived(RemoteMessage remoteMessage) {

    if(remoteMessage.getNotification() != null){
         title = remoteMessage.getNotification().getTitle();
         message = remoteMessage.getNotification().getBody();
        Log.d("Message body", remoteMessage.getNotification().getBody().toString());
    }


    Map<String, String> data = remoteMessage.getData();
    title = data.get("company");
    message = data.get("message");
    Log.d("Message body", remoteMessage.getData().toString());

    Intent intent = new Intent(this,MainActivity.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    PendingIntent pendingIntent = PendingIntent.getActivity(this,0,intent,PendingIntent.FLAG_ONE_SHOT);
    NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
    builder.setContentTitle(title);
    builder.setContentText(message);
    builder.setSmallIcon(R.mipmap.ic_launcher);
    builder.setAutoCancel(true);
    builder.setContentIntent(pendingIntent);
    NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    notificationManager.notify(0, builder.build());

    super.onMessageReceived(remoteMessage);
}
}

here is Manifest.xml

 <uses-permission android:name="android.permission.INTERNET"></uses-permission>
<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <service android:name=".FcmInstanceIdService">
        <intent-filter>
            <action android:name="com.google.firebase.INSTANCE_ID_EVENT"></action>
        </intent-filter>
    </service>
    <service
        android:name=".FCMMessagingService"
        android:stopWithTask="false">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT"/>
        </intent-filter>
    </service>

</application>

Upvotes: 0

Views: 409

Answers (1)

Sabir Hossain
Sabir Hossain

Reputation: 1205

If you getting the notification when your app is in foreground the it's ok you just use a data payload instead of notification payload you can use both together but data payload works when app in background or even close. I recommend you for only use the data payload because it's work 100% time. One of my app didn't get notification when app is closed but I used both payload then I just changed it to only data payload and it worked fine.

Upvotes: 1

Related Questions