@Override public void onCreate() { // TODO Auto-generated method stub super.onCreate(); RongIM.getInstance() .init(this, Const.APP_KEY, R.drawable.ic_launcher); // 只执行一次,中间字符串,写private Key(开发环境的) String token = Const.TOKEN; // 用网页调试生成现成的token RongIM.connect( token, new RongIMClient.ConnectCallback() // 工程中只调用一次,如果断线,由融云SDK自动启重连 { @Override public void onError(ErrorCode arg0) { // TODO Auto-generated method stub Log.d("Connect:", "Login Failed " + arg0.getValue()); } @Override public void onSuccess(String arg0) { // TODO Auto-generated method stub Log.d("Connect:", "Login Success " + arg0); } }); }
/** * 连接融云服务器 * * @param c * @param token 用户令牌 */ public static void ConnectRongYun(final Context c, String token) { RongYunFrindsManager.getInstance(c); if (c.getApplicationInfo() .packageName .equals(App.getCurrentPidName(c.getApplicationContext()))) { RongIM.connect( token, new ConnectCallback() { @Override public void onTokenIncorrect() { // TODO Auto-generated method stub Toast.makeText(c.getApplicationContext(), "获取令牌失败", Toast.LENGTH_SHORT).show(); } @Override public void onError(ErrorCode arg0) { // TODO Auto-generated method stub Toast.makeText(c.getApplicationContext(), "服务器故障,请稍候重试", Toast.LENGTH_SHORT).show(); } @Override public void onSuccess(String arg0) { // TODO Auto-generated method stub Toast.makeText(c.getApplicationContext(), "登录成功", Toast.LENGTH_SHORT).show(); } }); } }
private void conectionRongYun() { // APIManager.getInstance(this).getRongyunToken(new Response.ErrorListener() { // @Override // public void onErrorResponse(VolleyError error) { // hideProgressDialog(); // showException(error); // } // }, new Response.Listener<RequestResult<?>>() { // @Override // public void onResponse(RequestResult<?> response) { // if (response.code==RequestResult.RESULT_SUCESS) { Log.e("TOKEN", "==" + mLoginUser.rongcloudToken); try { // // mLoginUser.rongcloudToken="FHGRf2wRDyokcR1o/HiLdM2yq+hfEluLjZ78E1qo4hGoJtlXfHETWOBzWjJmmabX2UDBRYDylpE0F1hw19xVFA=="; RongIM.connect( mLoginUser.rongcloudToken, new RongIMClient.ConnectCallback() { @Override public void onSuccess(String s) { // 此处处理连接成功。 Log.e("Connect:", "Login successfully." + s); // hideProgressDialog(); SettingsManager.saveLoginUser(mLoginUser); SettingsManager.setPhone(mLoginUser.phone); SettingsManager.setRememberPwd(isSelect, mPasswordStr); goToMainActivity(); new Thread() { @Override public void run() { RongCloudProvidersListener.getInstance().setOtherListener(); // getFriends(); } }.start(); } @Override public void onError(ErrorCode errorCode) { hideProgressDialog(); // ToastUtil.show(getMyApplication(), "融云服务器连接失败"); // showException(error); // 此处处理连接错误。 Log.e("Connect:", "Login failed.==" + errorCode); SettingsManager.saveLoginUser(mLoginUser); SettingsManager.setPhone(mLoginUser.phone); SettingsManager.setRememberPwd(isSelect, mPasswordStr); goToMainActivity(); } }); } catch (Exception e) { e.printStackTrace(); } // } }
/** * 收到push消息后做重连,重新连接融云 * * @param token */ private void reconnect(String token) { mDialog = new LoadingDialog(this); mDialog.setCancelable(false); mDialog.setText("正在连接中..."); mDialog.show(); try { RongIM.connect( token, new RongIMClient.ConnectCallback() { @Override public void onTokenIncorrect() {} @Override public void onSuccess(String userId) { mHandler.post( new Runnable() { @Override public void run() { mDialog.dismiss(); Intent intent = getIntent(); if (intent != null) { enterFragment(intent); } } }); } @Override public void onError(RongIMClient.ErrorCode e) { mHandler.post( new Runnable() { @Override public void run() { mDialog.dismiss(); } }); } }); } catch (Exception e) { mHandler.post( new Runnable() { @Override public void run() { mDialog.dismiss(); } }); e.printStackTrace(); } }
private void doRCIMConnect(final int tryTime) { if (!AccountService.instance().isLogin()) { return; } String imToken = AccountService.instance().account().getImToken(); if (imToken == null) { return; } RongIM.connect( AccountService.instance().account().getImToken(), new RongIMClient.ConnectCallback() { @Override public void onTokenIncorrect() { // Connect Token 失效的状态处理,需要重新获取 Token if (tryTime > 0) { HttpService.post( Constants.domain() + "/im/token", null, IMTokenModel.class, new RequestHandler() { @Override public void onRequestFinish(Object response) { IMTokenModel model = (IMTokenModel) response; AccountService.instance().account().setImToken(model.getData()); doRCIMConnect(tryTime - 1); } @Override public void onRequestFailed(BaseModel error) {} }); } } @Override public void onSuccess(String userId) {} @Override public void onError(RongIMClient.ErrorCode errorCode) {} }); }
/** * 收到push消息后做重连,重新连接融云 * * @param token */ private void reconnect( final String token, final String conversation, final String conversationType, final String targetId) { mDialog.setText("正在连接中..."); mDialog.show(); try { RongIM.connect( token, new RongIMClient.ConnectCallback() { @Override public void onTokenIncorrect() { Log.e(TAG, "--onTokenIncorrect---"); } @Override public void onSuccess(String userId) { if (mDialog != null) mDialog.dismiss(); if (conversation.equals("conversation")) { if (RongIM.getInstance() != null && RongIM.getInstance().getRongIMClient() != null) { RongIM.getInstance() .getRongIMClient() .getConversation( Conversation.ConversationType.valueOf(conversationType), targetId, new RongIMClient.ResultCallback<Conversation>() { @Override public void onSuccess(Conversation conversation) { if (conversation != null) { if (conversation.getLatestMessage() instanceof ContactNotificationMessage) { startActivity( new Intent(MainActivity.this, NewFriendListActivity.class)); } else { Uri uri = Uri.parse("rong://" + getApplicationInfo().packageName) .buildUpon() .appendPath("conversation") .appendPath(conversationType) .appendQueryParameter("targetId", targetId) .build(); Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(uri); startActivity(intent); } } } @Override public void onError(RongIMClient.ErrorCode e) {} }); } } } @Override public void onError(RongIMClient.ErrorCode e) { mDialog.dismiss(); } }); } catch (Exception e) { mDialog.dismiss(); e.printStackTrace(); } }
private void httpGetTokenSuccess(String token) { try { /** * IMKit SDK调用第二步 * * <p>建立与服务器的连接 * * <p>详见API http://docs.rongcloud.cn/api/android/imkit/index.html */ Log.e("LoginActivity", "---------onSuccess gettoken----------:" + token); RongIM.connect( token, new RongIMClient.ConnectCallback() { @Override public void onTokenIncorrect() { Log.e("LoginActivity", "---------onTokenIncorrect userId----------:"); } @Override public void onSuccess(String userId) { Log.e("LoginActivity", "---------onSuccess userId----------:" + userId); if (isFirst) { getUserInfoHttpRequest = DemoContext.getInstance().getDemoApi().getFriends(LoginActivity.this); DemoContext.getInstance().deleteUserInfos(); } else { final List<UserInfos> list = mUserInfosDao.loadAll(); if (list != null && list.size() > 0) { mHandler.obtainMessage(HANDLER_LOGIN_SUCCESS).sendToTarget(); } else { // 请求网络 getUserInfoHttpRequest = DemoContext.getInstance().getDemoApi().getFriends(LoginActivity.this); } } SharedPreferences.Editor edit = DemoContext.getInstance().getSharedPreferences().edit(); edit.putString("DEMO_USERID", userId); edit.putString("DEMO_USERNAME", userName); edit.apply(); RongCloudEvent.getInstance().setOtherListener(); } @Override public void onError(RongIMClient.ErrorCode e) { mHandler.obtainMessage(HANDLER_LOGIN_FAILURE).sendToTarget(); Log.e("LoginActivity", "---------onError ----------:" + e); } }); } catch (Exception e) { e.printStackTrace(); } if (DemoContext.getInstance() != null) { mGetMyGroupsRequest = DemoContext.getInstance().getDemoApi().getMyGroups(LoginActivity.this); } if (DemoContext.getInstance() != null) { SharedPreferences.Editor editor = DemoContext.getInstance().getSharedPreferences().edit(); editor.putString(INTENT_PASSWORD, mPassWordEt.getText().toString()); editor.putString(INTENT_IMAIL, mUserNameEt.getText().toString()); editor.apply(); } }
private static void loginRY(User user, ConnectCallback callback) { RongIM.connect(user.getToken(), callback); }