我正在使用FCM进行通知。由于某些问题,我在使用 FCM 云控制台发送时没有收到通知。
<service android:name=".MyInstanceIDService"
android:exported="true">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
<service android:name=".MyMessagingService">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
</intent-filter>
</service>
这是我的两堂课。
public class MyInstanceIDService extends FirebaseInstanceIdService {
private static final String TAG = "MyInstanceIDService";
@Override
public void onTokenRefresh() {
String refreshedToken = FirebaseInstanceId.getInstance().getToken();
System.out.println("Refreshed token: " + refreshedToken);
// Util.getInstance().saveDeviceID(UniversalImageLoaderConfigurationApplication.getContext(), refreshedToken);
// sendRegistrationToServer(refreshedToken);
}
}
public class MyMessagingService extends FirebaseMessagingService {
private static final String TAG = "MyMessagingService";
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
//Displaying data in log
//It is optional
// if(LOG)
Log.d(TAG, "From: " + remoteMessage.getFrom());
// Log.d(TAG, "Notification Message Body: " + remoteMessage.getNotification().getBody());
Map<String, String> data = remoteMessage.getData();
int id = Integer.parseInt(data.get("id"));
if (id == (Constants.NOTI_NOTIFCATION)) {
String title = data.get("title");
String body = data.get("body");
sendNotification(id, title, body, "");
} else {
sendNotification(1, "", "", "");
}
}
}
我注意到public void onTokenRefresh(( 从未调用过。所以我用了它
String refreshedToken = FirebaseInstanceId.getInstance((.getToken((;
在我的主活动中,我正在获得令牌ID。 可能是FirebaseInstanceIdService和FirebaseMessagingService没有运行。 下面是我的毕业生
implementation 'com.google.firebase:firebase-messaging:17.0.0'
implementation 'com.google.firebase:firebase-core:16.0.1'
我也用了
apply plugin: 'com.google.gms.google-services'
这是我的根级毕业生
buildscript {
repositories {
// google()
maven { url "https://maven.google.com" }
jcenter()
// mavenCentral()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.3'
classpath 'com.google.gms:google-services:4.0.1' // google-services plugin
}
}
allprojects {
repositories {
// google()
mavenLocal()
maven { url "https://maven.google.com" }
jcenter()
mavenCentral()
google()
}
}
对于服务声明,操作将相反。 更改为此内容:
<service android:name=".MyInstanceIDService"
android:exported="true">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
</intent-filter>
</service>
<service android:name=".MyMessagingService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
请参阅文档中的示例。