开发者社区 问答 正文

应用研发平台EMAS监听了message后,从后台发了一条消息,但收到的是null,这个应该怎么查?

应用研发平台EMAS监听了message后,从后台发了一条消息,但收到的是null,这个应该怎么查?
iwEcAqNwbmcDAQTRAe0F0QCeBrAcA2HmGiLLdATPxdH5QCIAB9IBzuxJCAAJomltCgAL0gAAg1Q.png_720x720q90.jpg
iwEcAqNwbmcDAQTRAe0FYgawajqD9C7Q2SMEz8XY7EAiAAfSAc7sSQgACaJpbQoAC9FAHA.png_720x720q90.jpg
iwEcAqNwbmcDAQTRCbwF0QDyBrAg99Dvfv-c3wTPxflDACIAB9IBzuxJCAAJomltCgAL0gAA-RQ.png_720x720q90.jpg

展开
收起
青城山下庄文杰 2023-08-20 17:37:15 73 发布于河北 分享
分享
版权
1 条回答
写回答
取消 提交回答
  • 你好,我查了一下资料,关于 EMAS 监听消息后收到 null 的问题,有以下几种可能的原因:

    你的 APP 没有注册监听消息的回调函数。在 EMAS 中,APP 需要注册监听消息的回调函数才能收到消息。你可以在 EMApp 的构造函数中调用 setOnMessageListener() 方法注册回调函数。
    EMApp app = new EMApp(this, "appid", "appkey", "appsecret");
    app.setOnMessageListener(new EMMessageListener() {
    @Override
    public void onMessageReceived(EMMessage message) {
    // 收到消息
    }

    @Override
    public void onMessageRead(EMMessage message) {
        // 消息已读
    }
    
    @Override
    public void onMessageDelivered(EMMessage message) {
        // 消息已送达
    }
    

    });
    你的 APP 的网络连接不是很稳定。如果 APP 的网络连接不稳定,可能会导致消息发送失败。你可以通过以下方式检查 APP 的网络连接是否正常:
    ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
    if (networkInfo == null || !networkInfo.isConnected()) {
    // 网络连接不正常
    }
    你的 APP 的后台进程被杀死。如果 APP 的后台进程被杀死,可能会导致 APP 无法收到消息。你可以通过以下方式检查 APP 的后台进程是否运行:
    ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
    List runningAppProcesses = activityManager.getRunningAppProcesses();
    for (RunningAppProcessInfo runningAppProcessInfo : runningAppProcesses) {
    if (runningAppProcessInfo.processName.equals(getPackageName())) {
    // APP 的后台进程正在运行
    }
    }
    你可以根据以上原因尝试解决这个问题。如果问题仍然存在,请联系 EMAS 官方支持。

    以下是 EMAS 官方支持的链接:

    https://www.emas.com/support/

    2023-09-21 09:53:29 举报
    赞同 评论

    评论

    全部评论 (0)

    登录后可评论
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等