大家好我一起工作http://quickblox.com/developers/Sample-webrtc-android它工作正常
但我想知道有什么方法可以让用户在我的应用程序中以快速 blox 用户的身份登录。
因为现在每次用户打开我的应用程序时,用户都必须先登录,所以我希望在可能的情况下让 session 保持 Activity 状态,
因为它更好地提高性能而不是每次登录都只是阻止登录并保持 session Activity
提前致谢
我使用了下面的代码
private void createSession(final String login, final String password) {
final QBUser user = new QBUser(login, password);
QBAuth.createSession(login, password, new QBEntityCallbackImpl<QBSession>() {
@Override
public void onSuccess(QBSession session, Bundle bundle) {
Log.d(TAG, "onSuccess create session with params");
user.setId(session.getUserId());
if (chatService.isLoggedIn()) {
initQBRTCClient();
} else {
chatService.login(user, new QBEntityCallbackImpl<QBUser>() {
@Override
public void onSuccess() {
Log.d(TAG, "onSuccess login to chat");
/*
* ListUsersActivity.this .runOnUiThread(new
* Runnable() {
*
* @Override public void run() {
* showProgress(false); } });
*
* startCallActivity(login);
*/
islogin = true;
initQBRTCClient();
}
@Override
public void onError(List errors) {
Toast.makeText(HomeAppActivity.this, "Error when login", Toast.LENGTH_SHORT).show();
for (Object error : errors) {
Log.d(TAG, error.toString());
}
}
});
}
}
@Override
public void onError(List<String> errors) {
Toast.makeText(HomeAppActivity.this, "Error when login, check test users login and password",
Toast.LENGTH_SHORT).show();
}
});
}
最佳答案
如 documentation 中所述 session token 有效期为 2 小时。
登录后,您可以将 session token 和过期时间存储在应用存储的某个位置 - 首选项、数据库等。可以通过 BaseService.getBaseService().getToken() 检索 token 。
当用户再次打开您的应用时,您可以使用存储的 token 设置 session BaseService.createFromExistentToken()
这是 documentation . 另外,为了保持永久运行聊天连接,最好使用 android service .
关于android - 在 android 中保持 quickblox 的用户 session 处于 Activity 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35332755/