无法接收来自对讲机、FCM 的推送通知



对讲机推送通知时遇到问题。我无法从对讲机接收设备上的任何推送通知;从 FCM 发送的标准通知可以完美地按预期工作。

已按照本教程进行操作,并按照建议将服务器密钥添加到对讲机。

云消息传递.java

public class CloudMessaging extends FirebaseMessagingService {
private final IntercomPushClient intercomPushClient = new IntercomPushClient();
public void getFirebaseInstanceID() {
FirebaseInstanceId.getInstance().getInstanceId()
.addOnCompleteListener(new OnCompleteListener<InstanceIdResult>() {
@Override
public void onComplete(@NonNull Task<InstanceIdResult> task) {
if (!task.isSuccessful()) {
Log.w(TAG, "getInstanceId failed", task.getException());
return;
}
intercomPushClient.sendTokenToIntercom(application, token);
);
}
}
});
}

@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
Map message = remoteMessage.getData();
if (intercomPushClient.isIntercomPush(message)) {
Log.d(TAG, "Intercom message received");
intercomPushClient.handlePush(getApplication(), message);
} else {
super.onMessageReceived(remoteMessage);
}
}

清单文件

<service
android:name="com.google.firebase.messaging.FirebaseMessagingService"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
<service
android:name=".CloudMessaging"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>

Gradle 文件中只需要一个"com.google.firebase.MESSAGING_EVENT"实例。就我而言,我坚持使用.CloudMessaging因为这是处理对讲机通知的地方,如上所示。我的CloudMessaging类需要一个具有 0 个输入字段的公共构造函数,以便在收到通知时打开。例如。

格拉德尔文件

<service
android:name=".CloudMessaging"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>

云消息类

public CloudMessaging() {
//dont delete or you wont get push notifications buddy
}
CloudMessaging(Context context, Application application) {
this.context = context;
this.application = application;
sharedPref = context.getSharedPreferences(FCM_ID_SHAREDPREF, MODE_PRIVATE);
}

接下来最重要的事情是确保您使用的是正确的对讲 SDK。我最初实现了一个没有推送通知功能的"基本"sdk。确保您拥有完整的 SDK。

错误的开发工具包

dependencies {
implementation 'io.intercom.android:intercom-sdk-base:x.x.+'
}

好的软件开发工具包

dependencies {
implementation 'io.intercom.android:intercom-sdk:x.x.+'
implementation 'com.google.firebase:firebase-messaging:x.+' 
}

相关内容

  • 没有找到相关文章

最新更新