Esempio n. 1
0
  @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);
          }
        });
  }
Esempio n. 2
0
  /**
   * 连接融云服务器
   *
   * @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();
            }
          });
    }
  }
Esempio n. 3
0
  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();
    }
  }
Esempio n. 8
0
 private static void loginRY(User user, ConnectCallback callback) {
   RongIM.connect(user.getToken(), callback);
 }