论坛版主
|
package com.example.firebasemessagingservice;
import android.content.Intent;
import android.text.TextUtils;
import android.util.Log;
import androidx.annotation.NonNull;
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.messaging.FirebaseMessaging;
import com.google.firebase.messaging.FirebaseMessagingService;
import com.google.firebase.messaging.RemoteMessage;
import java.util.HashMap;
import java.util.Map;
public class MyFirebaseMessaging extends FirebaseMessagingService {
private static final String TAG = "MyFirebaseMsgService";
public MyFirebaseMessaging() {
super();
Task<String> token = FirebaseMessaging.getInstance().getToken();
token.addOnCompleteListener(new OnCompleteListener<String>() {
@Override
public void onComplete(@NonNull Task<String> task) {
if(task.isSuccessful()){
Log.d("FCM Token", task.getResult());
}
}
});
}
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
// Handle FCM Message
Log.e(TAG, remoteMessage.getFrom());
// Check if message contains a data payload.
if (remoteMessage.getData().size() > 0){
Log.e(TAG, "Message data payload: " + remoteMessage.getData());
handleNow();
}
// Check if message contains a notification payload.
if (remoteMessage.getNotification() != null){
Log.e(TAG, "Message Notification Body: " + remoteMessage.getNotification().getBody());
String getMessage = remoteMessage.getNotification().getBody();
if(TextUtils.isEmpty(getMessage)) {
Log.e(TAG, "ERR: Message data is empty...");
} else {
Map<String, String> mapMessage = new HashMap<>();
assert getMessage != null;
mapMessage.put("key", getMessage );
// Broadcast Data Sending Test
Intent intent = new Intent("alert_data");
intent.putExtra("msg", getMessage);
LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
}
}
}
private void handleNow(){
Log.d(TAG, "Short lived task is done.");
}
@Override
public void onNewToken(@NonNull String s) {
super.onNewToken(s);
Log.d("yu","token : " + s);
}
}
@Override
protected void onStart() {
super.onStart();
// GoogleApiAvailability.getInstance().makeGooglePlayServicesAvailable(this);
Intent fcm = new Intent(getApplicationContext(), MyFirebaseMessaging.class);
startService(fcm);
}
|