J'ai d'abord ajouté FirebaseAnalytics à mon projet Android Unity, et cela fonctionne bien sur le test. Ensuite, lorsque j'ajoute FirebaseMessaging, crée l'application et envoie un message à partir de mon panneau FireBase, le message ne s'affichera pas sur l'appareil / l'émulateur et j'obtiens cette erreur dans Logcat:
E / FirebaseInstanceId: échec de la résolution du service d'intention cible, ignorant l'application du nom de classe
1722-4448 / system_process W / ActivityManager: impossible de démarrer le service Intent {act = com.google.firebase.MESSAGING_EVENT pkg = pack_name (a des extras)} U = 0: not found
E / FirebaseInstanceId: Erreur lors de la remise du message: ServiceIntent introuvable.
Il y a un sujet ici qui n'a pas de réponse spécifique au problème.
J'ai suivi FireBase procédure pas à pas pour ajouter FirebaseMessaging.unitypackage à mon projet et d'après cela j'ai ajouté ces lignes à mon manifeste:
<!-- The MessagingUnityPlayerActivity is a class that extends UnityPlayerActivity to work around a known issue when receiving notification data payloads in the background. --> <activity android:name="com.google.firebase.MessagingUnityPlayerActivity" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <meta-data android:name="unityplayer.UnityActivity" android:value="true" /> </activity> <service android:name="com.google.firebase.messaging.MessageForwardingService" android:exported="false" />
PS:
Après avoir ajouté le service mentionné dans la réponse @jeevashankar à mon manifeste, j'obtiens cette erreur lorsqu'un avis est arrivé:
E / BufferQueueProducer: requête [SurfaceView - pack_name / com.google.firebase.MessagingUnityPlayerActivity # 0]: BufferQueue a été abandonnée [SurfaceView - /com.google.firebase.MessagingUnityPlayerActivity#0] connect: BufferQueue a été abandonné E / BufferQueueProducer: [SurfaceView - nom_pack / com.google.firebase.MessagingUnityPlayerActivity # 0]
Mise à jour: J'ai testé FirebaseMessaging dans un projet Unity vide et l'ai testé sur un émulateur / appareil et cela fonctionne jusqu'à Android 7.1.1. Mais dans Android 8 (API 26) et plus, cette erreur et le message ne seront pas reçus:
system_process E / NotificationService: Aucun canal trouvé pour pkg =, channelId = null, id = 0, tag = campaign_collapse_key_4015583716848879920, opPkg =, callingUid = 10122, userId = 0, incomingUserId = 0, notificationUid = 10122, notification = Notification ( channel = null pri = 0 contentView = null vibrate = null sound = null defaults = 0x0 flags = 0x10 color = 0x00000000 vis = PRIVATE)
3 Réponses :
Vérifiez ce lien et ajoutez un filtre d'intention avec l'action MESSAGING_EVENT dans le fichier de manifeste Service dans Android.
public class FireMsgService extends FirebaseMessagingService { @Override public void onMessageReceived(RemoteMessage remoteMessage) { super.onMessageReceived(remoteMessage); Log.v("Firebase MSG", ""+remoteMessage.getNotification().toString()); } }
La classe FireMsgService étend la classe FirebaseMessagingService et dans la méthode onMessageReceived, vous recevrez des messages de notification.
<service android:name=".app.FireMsgService"> <intent-filter> <action android:name="com.google.firebase.MESSAGING_EVENT" /> </intent-filter> </service>
p>
Merci, j'utilise Unity Engine pas natif Android. Lorsque j'ajoute le service mentionné au manifeste, j'obtiens une erreur que j'ai ajoutée à mon message
J'ai trouvé la réponse. Vous devez importer des plugins Analytics & Messaging sans le dossier PlayServiceResolver. Ensuite, téléchargez le dernier package unity-jar-resolver unity depuis GitHub et importez-le dans votre Projet Unity. Après cela, appuyez simplement sur le bouton Force Resolve et obtenez un message d'opération réussie.
J'ai eu le même problème:
E / FirebaseInstanceId: Erreur lors de la remise du message: ServiceIntent introuvable
Après un certain temps, j'ai trouvé la solution en rendant le service exporté dans le manifeste
<service android:name=".MyMessagingService" android:exported="true" tools:ignore="ExportedService" > <intent-filter> <action android:name="com.google.firebase.MESSAGING_EVENT" /> </intent-filter> </service>
Si vous testez sur Xiaomi, il est parfois impossible d'envoyer des messages, voir également cette réponse stackoverflow.com/questions/58109753/...