0

我正在尝试在我的应用程序中实现 RTM,我逐步按照官方文档进行操作,但是当我尝试登录 RTM 服务器(使用 App ID only 方法)时,什么也没有发生,我基于登录实现的代码永远不会得到实现后,我查看了 agorartm.log 文件,发现 rtmClient 的初始化是成功的,但是我没有看到任何关于登录到 rtmClient 的信息,当我查看我的项目的使用页面时,我看到有RTM 的每日活跃用户中的一个用户,但这只是在第二天我登录而不是在同一天出现,这很奇怪。

- 这是我用来初始化 rtmClient 并登录它的方法:

private void loginToRtm(String uid,RtmLoginCallback rtmLoginCallback)
    {
    String appId = getString(R.string.AGORA_APP_ID);
    try
    {
     /*Initializing RtmClient*/
     rtmClient = RtmClient.createInstance(this, appId, new RtmClientListener() {
        @Override
        public void onConnectionStateChanged(int i, int i1) {

        }

      @Override
      public void onMessageReceived(RtmMessage rtmMessage, String s) {

        }
    @Override
    public void onImageMessageReceivedFromPeer(RtmImageMessage rtmImageMessage, String s) {

    }

    @Override
    public void onFileMessageReceivedFromPeer(RtmFileMessage rtmFileMessage, String s) {

    }

    @Override
    public void onMediaUploadingProgress(RtmMediaOperationProgress rtmMediaOperationProgress, long l) {

    }

    @Override
    public void onMediaDownloadingProgress(RtmMediaOperationProgress rtmMediaOperationProgress, long l) {

    }

    @Override
    public void onTokenExpired() {

    }

    @Override
    public void onPeersOnlineStatusChanged(Map<String, Integer> map) {

    }
});

}

catch (Exception e)
{
    throw new RuntimeException("RTM initialization failed!");
}

//Login to rtmClient
rtmClient.login(null, uid, new ResultCallback<Void>() {
    @Override
    public void onSuccess(Void aVoid) {

        rtmLoginCallback.rtmLoginOnCallback();

        Toast.makeText(context, uid + "Successful login to RTM", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onFailure(ErrorInfo errorInfo) {

        rtmLoginCallback.rtmLoginOnCallback();

        Toast.makeText(context, uid + "failed to login to RTM"+errorInfo.toString(), Toast.LENGTH_SHORT).show();

        Log.d("RTM_LOGIN : ","Failed");
    }
});
}

- 这是我在清单文件中使用的权限:

<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

- 这是我的 agorartm.log 文件:

     INFO    2021-09-02T10:45:48:860   4775; Agora Logger Started
        INFO    2021-09-02T10:45:48:860   4775; Agora SDK ver 1.4.7 build 538, built on Jul 15 2021 20:46:30
        INFO    2021-09-02T10:45:

48:860   4775; Agora SDK git ver:480914647 and branch:HEAD
    INFO    2021-09-02T10:45:48:860   4845; set_thread_priority returns 1
    INFO    2021-09-02T10:45:48:861   4775; initialize plugin manager
    INFO    2021-09-02T10:45:48:861   4775; built-in encryption is enabled
    INFO    2021-09-02T10:45:48:862   4775; built-in ssl is enabled
    INFO    2021-09-02T10:45:48:862   4775; use event engine
    INFO    2021-09-02T10:45:48:864   4775; CacheManager: save cache to storage elapsed 2
    INFO    2021-09-02T10:45:48:864   4775; create agora service
    INFO    2021-09-02T10:45:48:864   4775; platform is LINUX
    INFO    2021-09-02T10:45:48:865   4775; platform is ANDROID
    INFO    2021-09-02T10:45:48:865   4775; [xdump] init enable:1, dumpfile:1
    INFO    2021-09-02T10:45:48:873   4775; create rtm service, count:1
    INFO    2021-09-02T10:45:48:874   4775; [rtm-API] rtm service initialize
    INFO    2021-09-02T10:45:48:874   4775; [rtm-API] rtm start service
    INFO    2021-09-02T10:45:48:875   4846; AgoraServiceThread Thread started: 0x78a9bc92a0
    INFO    2021-09-02T10:45:48:921   4846; The selected AP IPs are 101.132.108.165,123.56.235.221,.
    INFO    2021-09-02T10:45:48:921   4846; The selected AP IPs are 2406:da14:97f:4701:52:194:158:59,112.126.96.46,2600:1f18:64ea:9401:50:17:126:121,106.14.12.130,118.190.148.38,47.107.39.93,.
    INFO    2021-09-02T10:45:48:921   4846; [ap] queryDns normal domain is ap4.agora.io
    INFO    2021-09-02T10:45:48:921   4846; [base_context]queryDns domain is ap4.agora.io
    INFO    2021-09-02T10:45:48:921   4846; [cm] queryDns domain is ap4.agora.io
    INFO    2021-09-02T10:45:48:921   4846; [base_context]queryDns domain is ap4.agora.io
    INFO    2021-09-02T10:45:48:923   4846; [ap] queryDns TLS domain is ap4-tls.agora.io
    INFO    2021-09-02T10:45:48:923   4846; [base_context]queryDns domain is ap4-tls.agora.io
    INFO    2021-09-02T10:45:48:923   4846; [cm] queryDns domain is ap4-tls.agora.io
    INFO    2021-09-02T10:45:48:923   4846; [base_context]queryDns domain is ap4-tls.agora.io
    INFO    2021-09-02T10:45:48:924   4854; AgoraRtmThread Thread started: 0x7889ce60e0
    INFO    2021-09-02T10:45:48:925   4854; [area_code] area status change
    INFO    2021-09-02T10:45:48:925   4846; The selected AP IPs are 123.56.235.221,101.132.108.165,.
    INFO    2021-09-02T10:45:48:925   4846; The selected AP IPs are 2600:1f18:64ea:9401:50:17:126:121,47.107.39.93,2406:da14:97f:4701:52:194:158:59,112.126.96.46,118.190.148.38,106.14.12.130,.
    INFO    2021-09-02T10:45:48:925   4846; [ap] queryDns normal domain is ap3.agora.io
    INFO    2021-09-02T10:45:48:925   4846; [base_context]queryDns domain is ap3.agora.io
    INFO    2021-09-02T10:45:48:925   4846; [cm] queryDns domain is ap3.agora.io
    INFO    2021-09-02T10:45:48:925   4846; [base_context]queryDns domain is ap3.agora.io
    INFO    2021-09-02T10:45:48:925   4846; [ap] queryDns TLS domain is ap1-tls.agora.io
    INFO    2021-09-02T10:45:48:925   4846; [base_context]queryDns domain is ap1-tls.agora.io
    INFO    2021-09-02T10:45:48:925   4846; [cm] queryDns domain is ap1-tls.agora.io
    INFO    2021-09-02T10:45:48:925   4846; [base_context]queryDns domain is ap1-tls.agora.io
    INFO    2021-09-02T10:45:48:926   4854; [area_code] area status change
    INFO    2021-09-02T10:45:48:926   4846; The selected AP IPs are 101.132.108.165,123.56.235.221,.
    INFO    2021-09-02T10:45:48:926   4846; The selected AP IPs are 2600:1f18:64ea:9401:50:17:126:121,47.107.39.93,2406:da14:97f:4701:52:194:158:59,112.126.96.46,106.14.12.130,118.190.148.38,.
    INFO    2021-09-02T10:45:48:926   4846; [ap] queryDns normal domain is ap1.agora.io
    INFO    2021-09-02T10:45:48:926   4846; [base_context]queryDns domain is ap1.agora.io
    INFO    2021-09-02T10:45:48:926   4846; [cm] queryDns domain is ap1.agora.io
    INFO    2021-09-02T10:45:48:926   4846; [base_context]queryDns domain is ap1.agora.io
    INFO    2021-09-02T10:45:48:926   4846; [ap] queryDns TLS domain is ap3-tls.agora.io
    INFO    2021-09-02T10:45:48:926   4846; [base_context]queryDns domain is ap3-tls.agora.io
    INFO    2021-09-02T10:45:48:926   4846; [cm] queryDns domain is ap3-tls.agora.io
    INFO    2021-09-02T10:45:48:926   4846; [base_context]queryDns domain is ap3-tls.agora.io
    INFO    2021-09-02T10:45:48:926   4854; [area_code] area status change
    INFO    2021-09-02T10:45:48:926   4846; The selected AP IPs are 123.56.235.221,101.132.108.165,.
    INFO    2021-09-02T10:45:48:926   4846; The selected AP IPs are 2600:1f18:64ea:9401:50:17:126:121,118.190.148.38,2406:da14:97f:4701:52:194:158:59,47.107.39.93,106.14.12.130,112.126.96.46,.
    INFO    2021-09-02T10:45:48:926   4846; [ap] queryDns normal domain is ap4.agora.io
    INFO    2021-09-02T10:45:48:927   4846; [base_context]queryDns domain is ap4.agora.io
    INFO    2021-09-02T10:45:48:927   4846; [cm] queryDns domain is ap4.agora.io
    INFO    2021-09-02T10:45:48:927   4846; [base_context]queryDns domain is ap4.agora.io
    INFO    2021-09-02T10:45:48:927   4846; [ap] queryDns TLS domain is ap3-tls.agora.io
    INFO    2021-09-02T10:45:48:927   4846; [base_context]queryDns domain is ap3-tls.agora.io
    INFO    2021-09-02T10:45:48:927   4846; [cm] queryDns domain is ap3-tls.agora.io
    INFO    2021-09-02T10:45:48:927   4846; [base_context]queryDns domain is ap3-tls.agora.io
    INFO    2021-09-02T10:45:48:927   4854; [area_code] area status change
    INFO    2021-09-02T10:45:48:927   4846; The selected AP IPs are 101.132.108.165,123.56.235.221,.
    INFO    2021-09-02T10:45:48:927   4846; The selected AP IPs are 2600:1f18:64ea:9401:50:17:126:121,106.14.12.130,2406:da14:97f:4701:52:194:158:59,118.190.148.38,112.126.96.46,47.107.39.93,.
    INFO    2021-09-02T10:45:48:927   4846; [ap] queryDns normal domain is ap4.agora.io
    INFO    2021-09-02T10:45:48:927   4846; [base_context]queryDns domain is ap4.agora.io
    INFO    2021-09-02T10:45:48:927   4846; [cm] queryDns domain is ap4.agora.io
    INFO    2021-09-02T10:45:48:927   4846; [base_context]queryDns domain is ap4.agora.io
    INFO    2021-09-02T10:45:48:927   4846; [ap] queryDns TLS domain is ap3-tls.agora.io
    INFO    2021-09-02T10:45:48:927   4846; [base_context]queryDns domain is ap3-tls.agora.io
    INFO    2021-09-02T10:45:48:927   4846; [cm] queryDns domain is ap3-tls.agora.io
    INFO    2021-09-02T10:45:48:927   4846; [base_context]queryDns domain is ap3-tls.agora.io
    INFO    2021-09-02T10:45:48:928   4854; [area_code] area status change
    INFO    2021-09-02T10:45:48:928   4846; The selected AP IPs are 123.56.235.221,101.132.108.165,.
    INFO    2021-09-02T10:45:48:928   4846; The selected AP IPs are 2600:1f18:64ea:9401:50:17:126:121,106.14.12.130,2406:da14:97f:4701:52:194:158:59,47.107.39.93,118.190.148.38,112.126.96.46,.
    INFO    2021-09-02T10:45:48:928   4846; [ap] queryDns normal domain is ap5.agora.io
    INFO    2021-09-02T10:45:48:928   4846; [base_context]queryDns domain is ap5.agora.io
    INFO    2021-09-02T10:45:48:928   4846; [cm] queryDns domain is ap5.agora.io
    INFO    2021-09-02T10:45:48:928   4846; [base_context]queryDns domain is ap5.agora.io
    INFO    2021-09-02T10:45:48:928   4846; [ap] queryDns TLS domain is ap1-tls.agora.io
    INFO    2021-09-02T10:45:48:928   4846; [base_context]queryDns domain is ap1-tls.agora.io
    INFO    2021-09-02T10:45:48:928   4846; [cm] queryDns domain is ap1-tls.agora.io
    INFO    2021-09-02T10:45:48:928   4846; [base_context]queryDns domain is ap1-tls.agora.io
    INFO    2021-09-02T10:45:48:928   4854; [area_code] area status change
    INFO    2021-09-02T10:45:48:928   4846; The selected AP IPs are 123.56.235.221,101.132.108.165,.
    INFO    2021-09-02T10:45:48:928   4846; The selected AP IPs are 2600:1f18:64ea:9401:50:17:126:121,106.14.12.130,2406:da14:97f:4701:52:194:158:59,118.190.148.38,112.126.96.46,47.107.39.93,.
    INFO    2021-09-02T10:45:48:928   4846; [ap] queryDns normal domain is ap5.agora.io
    INFO    2021-09-02T10:45:48:928   4846; [base_context]queryDns domain is ap5.agora.io
    INFO    2021-09-02T10:45:48:928   4846; [cm] queryDns domain is ap5.agora.io
    INFO    2021-09-02T10:45:48:928   4846; [base_context]queryDns domain is ap5.agora.io
    INFO    2021-09-02T10:45:48:928   4846; [ap] queryDns TLS domain is ap2-tls.agora.io
    INFO    2021-09-02T10:45:48:928   4846; [base_context]queryDns domain is ap2-tls.agora.io
    INFO    2021-09-02T10:45:48:928   4846; [cm] queryDns domain is ap2-tls.agora.io
    INFO    2021-09-02T10:45:48:928   4846; [base_context]queryDns domain is ap2-tls.agora.io
    INFO    2021-09-02T10:45:48:928   4854; [area_code] area status change
    INFO    2021-09-02T10:45:48:928   4846; The selected AP IPs are 101.132.108.165,123.56.235.221,.
    INFO    2021-09-02T10:45:48:928   4846; The selected AP IPs are 2406:da14:97f:4701:52:194:158:59,112.126.96.46,2600:1f18:64ea:9401:50:17:126:121,106.14.12.130,47.107.39.93,118.190.148.38,.
    INFO    2021-09-02T10:45:48:929   4846; [ap] queryDns normal domain is ap5.agora.io
    INFO    2021-09-02T10:45:48:929   4846; [base_context]queryDns domain is ap5.agora.io
    INFO    2021-09-02T10:45:48:929   4846; [cm] queryDns domain is ap5.agora.io
    INFO    2021-09-02T10:45:48:929   4846; [base_context]queryDns domain is ap5.agora.io
    INFO    2021-09-02T10:45:48:929   4846; [ap] queryDns TLS domain is ap3-tls.agora.io
    INFO    2021-09-02T10:45:48:929   4846; [base_context]queryDns domain is ap3-tls.agora.io
    INFO    2021-09-02T10:45:48:929   4846; [cm] queryDns domain is ap3-tls.agora.io
    INFO    2021-09-02T10:45:48:929   4846; [base_context]queryDns domain is ap3-tls.agora.io
    INFO    2021-09-02T10:45:48:929   4854; [area_code] area status change
    INFO    2021-09-02T10:45:48:929   4846; The selected AP IPs are 101.132.108.165,123.56.235.221,.
    INFO    2021-09-02T10:45:48:929   4846; The selected AP IPs are 2406:da14:97f:4701:52:194:158:59,118.190.148.38,2600:1f18:64ea:9401:50:17:126:121,47.107.39.93,112.126.96.46,106.14.12.130,.
    INFO    2021-09-02T10:45:48:929   4846; [ap] queryDns normal domain is ap2.agora.io
    INFO    2021-09-02T10:45:48:929   4846; [base_context]queryDns domain is ap2.agora.io
    INFO    2021-09-02T10:45:48:929   4846; [cm] queryDns domain is ap2.agora.io
    INFO    2021-09-02T10:45:48:929   4846; [base_context]queryDns domain is ap2.agora.io
    INFO    2021-09-02T10:45:48:929   4846; [ap] queryDns TLS domain is ap4-tls.agora.io
    INFO    2021-09-02T10:45:48:929   4846; [base_context]queryDns domain is ap4-tls.agora.io
    INFO    2021-09-02T10:45:48:929   4846; [cm] queryDns domain is ap4-tls.agora.io
    INFO    2021-09-02T10:45:48:929   4846; [base_context]queryDns domain is ap4-tls.agora.io
    INFO    2021-09-02T10:45:48:929   4854; [area_code] area status change
    INFO    2021-09-02T10:45:48:929   4846; The selected AP IPs are 123.56.235.221,101.132.108.165,.
    INFO    2021-09-02T10:45:48:929   4846; The selected AP IPs are 2406:da14:97f:4701:52:194:158:59,112.126.96.46,2600:1f18:64ea:9401:50:17:126:121,118.190.148.38,106.14.12.130,47.107.39.93,.
    INFO    2021-09-02T10:45:48:929   4846; [ap] queryDns normal domain is ap3.agora.io
    INFO    2021-09-02T10:45:48:929   4846; [base_context]queryDns domain is ap3.agora.io
    INFO    2021-09-02T10:45:48:929   4846; [cm] queryDns domain is ap3.agora.io
    INFO    2021-09-02T10:45:48:929   4846; [base_context]queryDns domain is ap3.agora.io
    INFO    2021-09-02T10:45:48:930   4846; [ap] queryDns TLS domain is ap4-tls.agora.io
    INFO    2021-09-02T10:45:48:930   4846; [base_context]queryDns domain is ap4-tls.agora.io
    INFO    2021-09-02T10:45:48:930   4846; [cm] queryDns domain is ap4-tls.agora.io
    INFO    2021-09-02T10:45:48:930   4846; [base_context]queryDns domain is ap4-tls.agora.io
    INFO    2021-09-02T10:45:48:930   4846; [CS]: found no value for key rtm.message.enable_advanced_e2e_scale from TDS cache
    INFO    2021-09-02T10:45:48:930   4846; [CS]: found no value for key rtm.media.chunk_timeout from TDS cache
    INFO    2021-09-02T10:45:48:930   4846; [CS]: found no value for key rtm.ip_tls_indian_area from TDS cache
    INFO    2021-09-02T10:45:48:930   4846; [CS]: found no value for key rtm.ip_tls_south_america_area from TDS cache
    INFO    2021-09-02T10:45:48:930   4846; [CS]: found no value for key rtm.encryption_level from TDS cache
    INFO    2021-09-02T10:45:48:930   4846; [CS]: found no value for key rtm.ip_na_area from TDS cache
    INFO    2021-09-02T10:45:48:930   4846; [CS]: found no value for key rtm.ip_tls_africa_area from TDS cache
    INFO    2021-09-02T10:45:48:930   4846; [CS]: found no value for key rtm.ip_tls_oceania_area from TDS cache
    INFO    2021-09-02T10:45:48:930   4846; [CS]: found no value for key rtm.ip_tls_jp_area from TDS cache
    INFO    2021-09-02T10:45:48:930   4846; [CS]: found no value for key rtm.message.enable_p0_scale from TDS cache
    INFO    2021-09-02T10:45:48:930   4846; [CS]: found no value for key rtm.ip_tls_as_area from TDS cache
    INFO    2021-09-02T10:45:48:930   4846; [CS]: found no value for key rtm.ip_as_area from TDS cache
    INFO    2021-09-02T10:45:48:930   4846; [CS]: found no value for key rtm.ip_south_america_area from TDS cache
    INFO    2021-09-02T10:45:48:930   4846; [CS]: found no value for key rtm.ip_tls_eur_area from TDS cache
    INFO    2021-09-02T10:45:48:930   4846; [CS]: found no value for key rtm.ip_cn_area from TDS cache
    INFO    2021-09-02T10:45:48:930   4846; [CS]: found no value for key rtm.ip_africa_area from TDS cache
    INFO    2021-09-02T10:45:48:930   4846; [CS]: found no value for key rtm.ip_oceania_area from TDS cache
    INFO    2021-09-02T10:45:48:930   4846; [CS]: found no value for key rtm.ip_tls_cn_area from TDS cache
    INFO    2021-09-02T10:45:48:930   4846; [CS]: found no value for key rtm.ip_indian_area from TDS cache
    INFO    2021-09-02T10:45:48:931   4846; [CS]: found no value for key rtm.ip_jp_area from TDS cache
    INFO    2021-09-02T10:45:48:931   4846; [CS]: found no value for key rtm.ip_eur_area from TDS cache
    INFO    2021-09-02T10:45:48:931   4846; [CS]: found no value for key rtm.link_port from TDS cache
    INFO    2021-09-02T10:45:48:931   4846; [CS]: found no value for key rtm.peer.end_call_enabled from TDS cache
    INFO    2021-09-02T10:45:48:931   4846; [CS]: found no value for key rtm.ip_tls_na_area from TDS cache
    INFO    2021-09-02T10:45:48:931   4846; [rtm-context] initialization started.
    INFO    2021-09-02T10:45:48:931   4846; [rtm-context] TLS-configuration started.
    INFO    2021-09-02T10:45:48:931   4846; [rtm-context] TLS-configuration succeed.
    INFO    2021-09-02T10:45:48:931   4846; [rtm-context] initialization succeed.

这是我在 Agora 控制台上的项目使用页面截图的链接,显示有用户登录

4

2 回答 2

0

以防万一其他人遇到这个问题,我就是这样解决的:

我实现了 Agora RTM 1.4.1 版:

'com.github.agorabuilder:rtm-sdk:1.4.1'

而不是 1.4.7 版本,然后在我的设备上运行我的应用程序,发现问题的原因是 Agora 在另一个线程(在主线程之外)实现了 RTM 的 Login 方法,所以我得到了这个异常:

java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()

我搜索此错误并找到有关此问题的解决方案: Can't toast on a thread that has not called Looper.prepare()

我使用了@nhoxbypass 答案提供的代码:

runOnUiThread(new Runnable() {
  public void run() {
     final Toast toast = Toast.makeText(context, "GAME OVER!\nScore: " + score, duration);
     toast.show();
  }
  });

这个错误的原因是我在主 UI 线程之外祝酒。所以基本上 Agora 在他们的 SDK 的较新版本中处理了这个异常,所以我无法看到这个错误并解决问题,他们也没有提到他们的方法在主线程之外运行,并且在他们的文档中: https://docs.agora.io/en/Real-time-Messaging/messaging_android?platform=Android#2-implement-the-logic-of-sending-and-receiving-messages 他们在主线程内祝酒是完全错误的。后来我回到 Agora RTM 1.4.7 版并运行我的应用程序,我能够成功登录。

于 2021-09-07T13:32:44.403 回答
0

看起来文档已经更新并添加了 uithread:

https://docs.agora.io/en/Real-time-Messaging/messaging_android?platform=Android#2-implement-the-logic-of-sending-and-receiving-messages

            @Override
            public void onFailure(ErrorInfo errorInfo) {
                CharSequence text = "User: " + uid + " failed to log in to the RTM system!" + errorInfo.toString();
                int duration = Toast.LENGTH_SHORT;
                runOnUiThread(new Runnable() {
                    public void run() {
                        Toast toast = Toast.makeText(getApplicationContext(), text, duration);
                        toast.show();
                    }
                });

            }
于 2022-01-12T09:22:40.577 回答