如何为Android设备实现统一的FCM推送通知,即使在游戏被杀死时也能正常工作

时间:2017-07-31 07:27:57

标签: java c# android unity3d plugins

我想为在unity3D中开发的Android游戏实施Firebase推送通知,即使游戏没有在后台运行也能正常工作。专家在许多论坛中建议你需要创建一个Android插件,该服务总是在后台运行,如

<?xml version="1.0" encoding="utf-8"?>

此服务将收到推送通知,并通过调用C#方法通知Unity3D游戏。

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <service
        android:name=".MyFirebaseInstanceIDService">
        <intent-filter>
            <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
        </intent-filter>
    </service>
    <service
        android:name=".MyFirebaseMessagingService">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT"/>
        </intent-filter>
    </service>
</application>

然后创建此项目的.AAR文件并将其放在\ Assets \ Plugins \ Android中。 我遵循相同的策略,但推动从未收到unity3D。 这是我的插件的清单文件。

{{1}}

{{1}}

这对我不起作用。然后我创建另一个清单文件并将其放在assets / Plugins / Android / AndroidManifest.xml下,并在该文件中添加服务标签,但这种方法没有结果。

我怎样才能做到这一点?我已经尝试了一个多星期但没有运气。任何帮助都会非常值得赞赏。

1 个答案:

答案 0 :(得分:0)

我成功解决了这个问题。我对这个问题的理解有所不同。我正在使用库实现firebase并在同一个库包上创建firebase项目,但正确的方法是在库/插件中只有两个服务MyFirebaseInstanceIDServiceMyFirebaseMessagingService而没有别的。然后在另一个Android应用程序或统一游戏中我实现了firebase并在控制台上创建了一个firebase项目,在清单中我引用了库/ plugin / .AAR中的服务。

这就是我遇到这个问题的方法。现在接下来的挑战是,当Unity应用程序关闭时,服务会停止。