Android FCM не может запустить Сервис и получать Resposne - PullRequest
0 голосов
/ 12 декабря 2018

Я внедряю Android FCM и уже настроил все, получая уведомления по умолчанию при отправке из firebase, но Служба не обрабатывает отправленные сообщения.

Ниже мой сервис:

public class MyFirebaseMessagingService extends FirebaseMessagingService {

private static final String TAG = "MyFirebaseMsgService";

/**
 * Called when message is received.
 *
 * @param remoteMessage Object representing the message received from Firebase Cloud Messaging.
 */
// [START receive_message]



@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
    // TODO(developer): Handle FCM messages here.
    // Not getting messages here? See why this may be:
    Log.d(TAG, "From: " + remoteMessage.getFrom());

    // Check if message contains a data payload.
    if (remoteMessage.getData().size() > 0) {
        Log.d(TAG, "Message data payload: " + remoteMessage.getData());

        if (/* Check if data needs to be processed by long running job */ true) {
            // For long-running tasks (10 seconds or more) use Firebase Job Dispatcher.
            scheduleJob();
        } else {
            // Handle message within 10 seconds
            handleNow();
        }

    }

    // Check if message contains a notification payload.
    if (remoteMessage.getNotification() != null) {
        Log.d(TAG, "Message Notification Body: " + remoteMessage.getNotification().getBody());
    }

    // Also if you intend on generating your own notifications as a result of a received FCM
    // message, here is where that should be initiated. See sendNotification method below.
}

Я также объявил эту услугу в файле манифеста.

Когда я отправляю сообщение из консоли Firebase, я получаю уведомления по умолчанию с заголовком и телом, но ничего в журнале отладки.На самом деле сервис даже не запущен.Мне нужно реализовать уведомления изображения и пару значений ключа, так что это требуется.Ниже декларация манифеста:

  <service android:name=".MyFirebaseMessagingService">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT" />
        </intent-filter>
    </service>

Ниже декларация в классе приложения.

 FirebaseMessaging.getInstance().subscribeToTopic("weather")
                .addOnCompleteListener(new OnCompleteListener<Void>() {
                    @Override
                    public void onComplete(@NonNull Task<Void> task) {
                        String msg = "Subscribed";
                        if (!task.isSuccessful()) {
                            msg = "Message";
                        }
                        Log.d("Token", msg);
                        Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_SHORT).show();
                    }
                });

1 Ответ

0 голосов
/ 13 декабря 2018

Я считаю, что эта служба вызывается, только если ваше приложение находится на переднем плане.Если это в фоновом режиме, обработчик по умолчанию заботится об этом.Не уверен, что есть способ переопределить это поведение, кроме отправки текстового уведомления вместо текстового.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...