如何在Manifest中设置Android Firebase通知?

7

我正在尝试设置Firebase通知。我在应用程序级别和根级别build.gradle中进行了更改。但是,我的FirebaseMessagingService的清单中仍然出现错误。错误是未解决的类。

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

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity">


        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <action android:name="com.google.firebase.MESSAGING_EVENT"/>
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".s" />
    <activity android:name=".im" />
    <activity android:name=".Main2Activity" />
    <activity android:name=".sactivity" />
    <service
        android:name=".MyFirebaseMessagingService">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT"/>
        </intent-filter>
    </service>
    <activity
        android:name=".ScrollingActivity"
        android:label="@string/title_activity_scrolling"
        android:theme="@style/AppTheme.NoActionBar"></activity>
</application>


1
MyFirebaseMessaginService是一个类吗? - Ali Bdeir
1
只是一个提示,升级到Android Studio 2.2;升级后,如果您转到"工具> Firebase",您可以设置任何应用程序,而无需添加任何类或依赖项,因为它会自动添加。只需转到"工具 > Firebase",从弹出窗口中选择通知。然后按照他们在那里说的一切去操作。 - Ali Bdeir
没有问题。我按照 https://firebase.google.com/docs/notifications/android/console-audience 上的教程进行了操作。 - coolamz
他们还没有包含Firebase插件的事实。我建议升级并使用它。 - Ali Bdeir
我重新编写了这个活动并更新到了Android Studio 2.2。他们让它变得非常简单。感谢AbAppletic、Frank van Puffelen和AbAppletic的支持! - coolamz
显示剩余2条评论
3个回答

5

看起来Android清单文件无法定位到MyFirebaseMessagingService类。我建议您放置该类的全限定包名。请参见下面的示例:

    <service android:name="com.android.notification.MyFirebaseMessagingService">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT" />
        </intent-filter>
    </service>

谢谢,我忘记了:( - Mehtab

0
  <service android:name="com.fcm.MyFirebaseMessagingServices">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT" />
        </intent-filter>
    </service>

    <service android:name="com.fcm.MyFirebaseInstanceIdServices">
        <intent-filter>
            <action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
        </intent-filter>
    </service>

0

哦!你还没有在这里创建任何Java类,让我们绕过它,因为|service|默认情况下被实例化为true。你应该将android:enabled="false",我认为这应该可以解决问题。请参见下面的详细代码。

<service  android:enabled="false" android:name="MyFirebaseMessagingService">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT"/>
        </intent-filter>
</service>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接