如何使用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自述文件中的多个示例将此方法用于您描述的目的,包括此方法:
按照步骤获取会话状态,无论会话是否处于活动状态
例如,下面给出了示例代码
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();
}