我想为在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下,并在该文件中添加服务标签,但这种方法没有结果。
我怎样才能做到这一点?我已经尝试了一个多星期但没有运气。任何帮助都会非常值得赞赏。
答案 0 :(得分:0)
我成功解决了这个问题。我对这个问题的理解有所不同。我正在使用库实现firebase并在同一个库包上创建firebase项目,但正确的方法是在库/插件中只有两个服务MyFirebaseInstanceIDService
和MyFirebaseMessagingService
而没有别的。然后在另一个Android应用程序或统一游戏中我实现了firebase并在控制台上创建了一个firebase项目,在清单中我引用了库/ plugin / .AAR中的服务。
这就是我遇到这个问题的方法。现在接下来的挑战是,当Unity应用程序关闭时,服务会停止。