如何使用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
按照步骤获取会话状态是否处于活动状态
- 检查登录状态
- 如果登录成功意味着调用任何 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();
}
我正在开发一个 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
按照步骤获取会话状态是否处于活动状态
- 检查登录状态
- 如果登录成功意味着调用任何 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();
}