如何使用android-evernote sdk查看授权状态?

How to check the authorization status using android-evernote sdk?


我正在开发一个 android 应用程序,它使用 evernote android sdk 进行某些 evernote 进程。
登录成功,授权也生效了。
登录后如何查看授权状态是有效还是无效。
基于以下方法

com.evernote.client.android.EvernoteSession.isLoggedIn()


只有 returns 登录 status.It returns 如果登录成功则为真,否则 returns 为假。


ios-evenote sdk中他们有变量
在class-ENSession.h
在 属性 isAuthenticated 的帮助下我们可以找到授权状态​​。


就像我想知道授权 status.For 我今天登录并授权了 1 天但没有 logout.After 我关闭了我的应用程序而不使用注销会话。
明天我想查看授权状态。我怎样才能做到这一点? evernote android sdk 中有没有可用的方法?

您可以使用:

EvernoteSession.getInstance().isLoggedIn()

获取用户当前的认证状态。只需确保您使用的是最新 (v2+) 版本的 SDK(可在此处获取:https://github.com/evernote/evernote-sdk-android

SDK 自述文件中的多个示例将此方法用于您描述的目的,包括以下示例:https://github.com/evernote/evernote-sdk-android/blob/master/README.md#creating-a-note-asynchronously


按照步骤获取会话状态是否处于活动状态

  1. 检查登录状态
  2. 如果登录成功意味着调用任何 api 列出笔记本等的方法
  3. 成功则会话有效,否则会话无效


例如下面给出的示例代码

final SessionCheckingCallback callback_final = callback;
if (!mEvernoteSession.isLoggedIn()) {
    Log.d(SESSION_CHECK_TAG, "Session expired.Session not logged in");
    callback.onSessionExpired();
}

try {
    AsyncNoteStoreClient asyncNoteStoreClient = mEvernoteSession.getClientFactory().createNoteStoreClient();
    asyncNoteStoreClient.listNotebooks
            (
                    new OnClientCallback<List<Notebook>>() {
                        @Override
                        public void onSuccess(List<Notebook> data) {
                            //Session valid

                            callback_final.onSessionSuccess();
                        }

                        @Override
                        public void onException(Exception exception)
                        {
                            exception.printStackTrace();

                            if (exception instanceof EDAMUserException)
                            {
                                Log.d(SESSION_CHECK_TAG, "exception is EDAMUserException");
                                EDAMUserException eDAMUserException = (EDAMUserException) exception;

                                if (eDAMUserException.getErrorCode() == EDAMErrorCode.AUTH_EXPIRED) {
                                    Log.d(SESSION_CHECK_TAG, "Session expired");
                                    callback_final.onSessionExpired();
                                } else {
                                    Log.d(SESSION_CHECK_TAG, "Session not expired");
                                    callback_final.onSessionSuccess();
                                }

                            }
                            else
                            {
                                Log.d(SESSION_CHECK_TAG, "exception is not EDAMUserException");
                                Log.d(SESSION_CHECK_TAG, "Session expired");
                                callback_final.onSessionExpired();
                            }


                        }
                    }
            );

} catch (Exception ex) {

    ex.printStackTrace();
    Log.d("Session check", "session expired due to exception ");
    callback.onSessionExpired();
}