Я разрабатываю гибридное приложение с использованием Ioni c. Приложение принимает входящие вызовы через SIP-связь и работает нормально ... за исключением Android 10 устройств.
Когда приложение работает в фоновом режиме / на переднем плане, оно работает как положено. Однако, когда я его убиваю, это не так.
Ожидаемое поведение при следующем:
- Пользователь A вызывает пользователя B.
- Пользователь B получает уведомление pu sh.
- Это уведомление обрабатывается событием onNotification и запускает приложение.
- Приложение регистрируется в SIP и при рукопожатии с сервером SIP.
- Callkit запускает и устанавливает sh связь.
Текущее поведение (с Android 10):
- Пользователь A вызывает пользователя B.
- Пользователь B получает уведомление pu sh.
- Он никогда не обрабатывается.
Следы в Android Studio:
2020-02-05 17:29:01.591 7064-7117/com.qv.app D/Push_FCMService: onMessage - from: XXXXXXXXXXX
2020-02-05 17:29:01.592 7064-7117/com.qv.app D/Push_FCMService: sender id = XXXXXXXXXXXX
2020-02-05 17:29:01.592 7064-7117/com.qv.app D/Push_FCMService: normalize extras
2020-02-05 17:29:01.592 7064-7117/com.qv.app D/Push_FCMService: key = content-available
2020-02-05 17:29:01.592 7064-7117/com.qv.app D/Push_FCMService: replace key content-available with content-available
2020-02-05 17:29:01.592 7064-7117/com.qv.app D/Push_FCMService: key = force-start
2020-02-05 17:29:01.592 7064-7117/com.qv.app D/Push_FCMService: replace key force-start with force-start
2020-02-05 17:29:01.592 7064-7117/com.qv.app D/Push_FCMService: key = priority
2020-02-05 17:29:01.592 7064-7117/com.qv.app D/Push_FCMService: replace key priority with priority
2020-02-05 17:29:01.592 7064-7117/com.qv.app D/Push_FCMService: key = msg
2020-02-05 17:29:01.592 7064-7117/com.qv.app D/Push_FCMService: replace key msg with msg
2020-02-05 17:29:01.592 7064-7117/com.qv.app D/Push_FCMService: key = notId
2020-02-05 17:29:01.593 7064-7117/com.qv.app D/Push_FCMService: replace key notId with notId
2020-02-05 17:29:01.593 7064-7117/com.qv.app D/Push_FCMService: key = title
2020-02-05 17:29:01.593 7064-7117/com.qv.app D/Push_FCMService: replace key title with title
2020-02-05 17:29:01.593 7064-7117/com.qv.app D/Push_FCMService: no locale found for key = title, error Value Qvadis of type java.lang.String cannot be converted to JSONObject
2020-02-05 17:29:01.593 7064-7117/com.qv.app D/Push_FCMService: key = coldstart
2020-02-05 17:29:01.593 7064-7117/com.qv.app D/Push_FCMService: replace key coldstart with coldstart
2020-02-05 17:29:01.593 7064-7117/com.qv.app D/Push_FCMService: key = visibility
2020-02-05 17:29:01.593 7064-7117/com.qv.app D/Push_FCMService: replace key visibility with visibility
2020-02-05 17:29:01.593 7064-7117/com.qv.app D/Push_FCMService: background
2020-02-05 17:29:01.593 7064-7117/com.qv.app D/Push_FCMService: message =[null]
2020-02-05 17:29:01.593 7064-7117/com.qv.app D/Push_FCMService: title =[TestTitle]
2020-02-05 17:29:01.593 7064-7117/com.qv.app D/Push_FCMService: contentAvailable =[1]
2020-02-05 17:29:01.593 7064-7117/com.qv.app D/Push_FCMService: forceStart =[1]
2020-02-05 17:29:01.593 7064-7117/com.qv.app D/Push_FCMService: create notification
2020-02-05 17:29:01.612 7064-7117/com.qv.app D/Push_FCMService: Using channel ID = PushPluginChannel
2020-02-05 17:29:01.620 7064-7117/com.qv.app D/Push_FCMService: stored icon=null
2020-02-05 17:29:01.620 7064-7117/com.qv.app D/Push_FCMService: stored iconColor=null
2020-02-05 17:29:01.620 7064-7117/com.qv.app D/Push_FCMService: stored sound=true
2020-02-05 17:29:01.620 7064-7117/com.qv.app D/Push_FCMService: stored vibrate=true
2020-02-05 17:29:01.620 7064-7117/com.qv.app D/Push_FCMService: no icon resource found - using application icon
2020-02-05 17:29:01.621 7064-7117/com.qv.app D/Push_FCMService: create actions: with in-line
2020-02-05 17:29:01.626 7064-7117/com.qv.app D/Push_FCMService: app is not running but we should start it and put in background
2020-02-05 17:29:01.627 7064-7117/com.qv.app I/Timeline: Timeline: Activity_launch_request time:6280056
2020-02-05 17:29:01.634 7064-7088/com.qv.app W/com.qvadis.app: Reducing the number of considered missed Gc histogram windows from 147 to 100
Это синтаксис, который я использую для уведомления:
{"registration_ids":["..xxxx..."], "data":{"visibility":"-1","content-available": "1", "force-start": "1", "priority": 2, "message": "msgTest", "notId": "24", "title": "titleTest"}, "priority":"high" }
Есть мысли? Кто-нибудь из вас сталкивался с этой проблемой раньше? Если кому-то из вас понадобится дополнительная информация, не стесняйтесь спрашивать, я с радостью отвечу.
Редактировать: Это руководство Android, касающееся ограничений на начало действий на Android 10 https://developer.android.com/guide/components/activities/background-starts
Большое спасибо заранее, Борха.