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

如何使用android evernote sdk检查授权状态?,android,ios,evernote,Android,Ios,Evernote,我正在开发一个android应用程序,它使用evernote android sdk处理一些evernote进程。 登录成功,授权也在运行。 如何在登录后检查授权状态是否有效。 基于以下方法 com.evernote.client.android.EvernoteSession.isLoggedIn() 它只返回登录状态。如果登录成功,则返回true,否则返回false 在ios evenote sdk中他们有变量 在课堂上-ENSession.h 通过属性的帮助,我们可以找到授权状态 像这样


我正在开发一个android应用程序,它使用evernote android sdk处理一些evernote进程。
登录成功,授权也在运行。
如何在登录后检查授权状态是否有效。
基于以下方法

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

它只返回登录状态。如果登录成功,则返回true,否则返回false


ios evenote sdk中他们有变量
在课堂上-ENSession.h
通过属性的帮助,我们可以找到授权状态


像这样,我想知道授权状态。例如,我今天登录,授权了1天,没有注销。之后,我关闭了我的应用程序,没有使用注销会话。
明天我要检查授权的状态。我该怎么做evernote android sdk中是否有可用的方法?

您可以使用:

EvernoteSession.getInstance().isLoggedIn()

获取用户的当前身份验证状态。只需确保您使用的是SDK的最新(v2+)版本(可在此处获得:)


SDK自述文件中的多个示例将此方法用于您描述的目的,包括此方法:


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

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

  • 例如,下面给出了示例代码

    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();
    }
    
    final SessionCheckingCallback\u final=callback;
    如果(!mEvernoteSession.isLoggedIn()){
    Log.d(会话检查标签,“会话已过期。会话未登录”);
    callback.onSessionExpired();
    }
    试一试{
    AsyncNoteStoreClient AsyncNoteStoreClient=mEvernoteSession.getClientFactory().createNoteStoreClient();
    asyncNoteStoreClient.ListNotes
    (
    新的OnClientCallback(){
    @凌驾
    成功时公开作废(列表数据){
    //会话有效
    回调_final.onSessionSuccess();
    }
    @凌驾
    公共无效OneException(异常)
    {
    异常。printStackTrace();
    if(EDAMUserException的异常实例)
    {
    Log.d(会话检查标记,“异常为异常”);
    EDAMUserException EDAMUserException=(EDAMUserException)异常;
    if(edamurexception.getErrorCode()==EDAMErrorCode.AUTH_已过期){
    Log.d(会话检查标签,“会话已过期”);
    回调_final.onSessionExpired();
    }否则{
    Log.d(会话检查标签,“会话未过期”);
    回调_final.onSessionSuccess();
    }
    }
    其他的
    {
    Log.d(会话检查标记,“异常不是异常”);
    Log.d(会话检查标签,“会话已过期”);
    回调_final.onSessionExpired();
    }
    }
    }
    );
    }捕获(例外情况除外){
    例如printStackTrace();
    Log.d(“会话检查”,“会话因异常而过期”);
    callback.onSessionExpired();
    }