首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法从对讲机接收推送通知

无法从对讲机接收推送通知
EN

Stack Overflow用户
提问于 2020-07-03 03:58:21
回答 1查看 798关注 0票数 0

对讲机推送通知有问题。我无法从对讲机接收设备上的任何推送通知;FCM发送的标准通知完全按照预期工作。

遵循教程,并按建议将服务器密钥添加到内部通信。

CloudMessaging.java

代码语言:javascript
复制
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);
    }
}

Gradle

代码语言:javascript
复制
    <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>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-05 23:43:16

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

级文件

代码语言:javascript
复制
<service
    android:name=".CloudMessaging"
    android:enabled="true"
    android:exported="true">
    <intent-filter>
        <action android:name="com.google.firebase.MESSAGING_EVENT" />
    </intent-filter>
</service>

CloudMessaging类

代码语言:javascript
复制
 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。我最初实现了一个'base‘sdk,它没有推送通知功能。确保您拥有完整的sdk。

坏SDK

代码语言:javascript
复制
dependencies {
    implementation 'io.intercom.android:intercom-sdk-base:x.x.+'
}

好SDK

代码语言:javascript
复制
dependencies {
    implementation 'io.intercom.android:intercom-sdk:x.x.+'
    implementation 'com.google.firebase:firebase-messaging:x.+' 
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62708288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档