我检查了清单,检查了服务,检查了我的依赖项,检查了类变量,但我的设备上仍然没有通知。我正在使用计算机发送Firebase云消息,并且应该在Android手机上接收它们。但是,我的android手机无法接收通知。是的,当我发送消息时,我的android设备在后台。有人知道我的问题是什么吗?
这是源代码:
我的服务
public class FirebaseIDMessage extends FirebaseMessagingService {
private static final String TAG = "FirebaseIDMessage";
@Override
public void onNewToken(String s) {
super.onNewToken(s);
String token = s;
Log.d(TAG, "Registered token: = " + token);
sendRegistrationToServer(token);
}
private void sendRegistrationToServer(String token){
}
}
我的清单文件
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.messaging">
<uses-permission android:name="android.permission.INTERNET" />
<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">
<!-- Services -->
<service android:name=".FirebaseIDMessage"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>
<activity android:name=".MessagingActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
我的活动
public class MessagingActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_messaging);
}
}
答案 0 :(得分:1)
在清单文件中,您缺少INSTANCE_ID_EVENT
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
</intent-filter>
这是使用FirebaseInstanceIdService扩展的Class的意图过滤器
public class MyFirebaseInstanceIdService extends FirebaseInstanceIdService
{
public static final String REGISTRATION_TOKEN = "REG_TOKEN";
@Override
public void onTokenRefresh()
{
String token = FirebaseInstanceId.getInstance().getToken();
Log.e(REGISTRATION_TOKEN,token);
}
}
因此,清单服务最终将像
<service android:name=".Utils.PushNotification.MyFirebaseInstanceIdService">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
</intent-filter>
</service>
答案 1 :(得分:0)
在日志上,您将已注册令牌。仅当您收到该令牌后,您的所有物品才能设置。
转到Firebase控制台:https://console.firebase.google.com
选择您的项目->从左侧菜单->选择“云消息”->“新消息”
键入您的消息,然后在“目标”中选择“单个设备”,然后复制粘贴收到的令牌,并通过这种方式在设备上检查此通知,我们可以确认您已正确设置了所有与通知相关的代码。如果您仍然遇到任何问题,请告诉我们,以便我分享一些示例。