FCM Android: фоновый запуск запрещен - PullRequest
0 голосов
/ 23 января 2019

У меня есть приложение, которое можно использовать для совершения звонков. Когда один пользователь хочет вызвать другого, мой сервер отправляет этот json на "https://fcm.googleapis.com/v1/projects/MyProject/messages:send

{
    "validate_only":false,
    "message": {
        "data": {
            "SomeData":"123"
        },
        "notification":null,
        "android": {
            "collapse_key":null,
            "priority":"HIGH",
            "ttl":"60s",
            "restricted_package_name":null,
            "data": {
                "SomeData":"123"
            },
            "notification":null
        },
        "webpush": {
            "headers": {
                "Urgency":"high"
            },
            "data":null,
            "notification":null,
            "fcm_options":null
        },
        "apns": {
            "headers": {
                "apns-priority":"10"
            },
            "payload":null
        },
        "token":"cU4RS3R142s:APA91bF6fDme6mxw9FcocLvXYepkpqYHbctZ0arEw43-6uhZCglyQ9qfndfmeeNE9oALkpzQ7boh47unQRoTMSUhy6ynddo6r8RcgYl9yuj07NCgDcSUfY4__YNSxpeGziXqQnDzGMZx",
        "topic":null,
        "condition":null
    }
}

Работает нормально, когда приложение находится на переднем плане и через несколько минут после того, как я вычеркнул его из недавнего списка. Но примерно через 20 минут FirebaseMessagingService.OnMessageReceived перестает звонить, и я получаю это в logcat.

01-23 10:19:59.670: I/FirebaseInitProvider(7162): FirebaseApp initialization successful
01-23 10:19:59.717: I/MyTag(7162): Application: OnCreate
01-23 10:19:59.896: W/ActivityManager(1398): Background start not allowed: service Intent { act=com.google.firebase.MESSAGING_EVENT pkg=com.companyname.MyApp.Android cmp=com.companyname.MyApp.Android/com.companyname.myapp.android.notificationservice (has extras) } to com.companyname.MyApp.Android/com.companyname.myapp.android.notificationservice from pid=7162 uid=10179 pkg=com.companyname.MyApp.Android
01-23 10:19:59.897: E/FirebaseInstanceId(7162): Error while delivering the message: ServiceIntent not found.

А вот код моего приложения

        public override void OnCreate()
        {
            base.OnCreate();
            WriteLog("Application: OnCreate");
            InitializePlayService();
        }

        private void InitializePlayService()
        {
            FirebaseApp.InitializeApp(this);
            MyFirebaseIDService.SendRegistrationToServer(FirebaseInstanceId.Instance.Token);
        }

Как я могу заставить это работать?

...