印象笔记(Evernote) Android SDK 更新

RE2-android-sdk_banner
印象笔记(Evernote) Android SDK 1.0 发布以来, 我们收到了很多开发者的反馈,我们也一直在努力让印象笔记SDK更加简单易用。现在,我们发布了最新版的Android SDK,增强了开发工具,改进了OAuth认证流程,可以自动选择印象笔记服务或者Evernote International服务(请参考开发文档引导过程 (bootstrapping)获取更多信息)。
android_bootstrap1
印象笔记(Evernote) Android SDK 1.1最主要的目标是简化印象笔记API,方便第三方应用更容易的同时支持印象笔记和Evernote International服务,更容易访问企业笔记本和他人共享给用户的笔记本(linked notebooks)。除此之外,我们还引入了简单易用的异步接口,从而实现多线程访问印象笔记服务。
更新功能全部列表:

  • 登录时可以自动选择印象笔记服务或者Evernote International服务
  • 对NoteStore.Client和UserStore.Client的异步封装
  • 新增了访问企业笔记本和他人共享给用户的笔记本(linked notebooks)的辅助对象
  • 增加了ClientFactory类来辅助创建各种Client对象
  • 简化的单一实例初始化过程
  • 增加例子代码,包括:创建笔记、创建资源、选择笔记本以及同时协作多个活动(activities)
  • 已知Bug修复

下面是使用异步接口AsyncNoteStoreClient和OnClientCallback列出笔记本的例子
这两个例子分别展示了使用不同方式列出笔记本:个人笔记本和企业笔记本。

ClientFactory clientFactory = mEvernoteSession.getClientFactory()
  .getNoteStoreClient();
client.listNotebooks(new OnClientCallback<List() {
  @Override
  public void onSuccess(final List notebooks) {
    //This is running in the UI Thread
    Log.d(LOGTAG, "Notebook count="notebooks.size());
  }
  @Override
  public void onException(Exception exception) {
    //This is running in the UI Thread
    Log.e(LOGTAG, "Error listing notebooks", exception);
  }
});

第一个例子创建了一个AsyncNoteStoreClient对象,然后通过它调用listNotebooks函数并传入回调函数OnClientCallback作为参数。这将在后台线程里面执行网络操作并且将结果返回给UI线程。

mEvernoteSession.getClientFactory().createBusinessNoteStoreClient(
new OnClientCallback() {
@Override
public void onSuccess(final AsyncBusinessNoteStoreClient client) {
//This is running in the UI Thread
client.listNotebooks(new OnClientCallback<List() {
@Override
public void onSuccess(final List notebooks) {
//This is running in the UI Thread
Log.d(LOGTAG, "Notebook count="notebooks.size());
}
@Override
public void onException(Exception exception) {
//This is running in the UI Thread
Log.e(LOGTAG, "Error listing notebooks", exception);
}
}
});
@Override
public void onException(Exception exception) {
Log.e(LOGTAG, "Error create business note store", exception);
}
});

第二个例子使用OnClientCallback回调函数作为参数创建一个AsyncBusinessNoteStoreClient对象,然后通过该对象调用listNotebooks函数,并且传入第二个OnClientCallback对象作为参数。这将在后台线程里面执行网络操作并且将结果返回给UI线程。因为createBusinessNoteStore和listNotebooks是独立的网络请求,所以嵌套的回调函数是必须的。createBusinessNoteStoreClient方法在必要的时候会给相应的企业帐户授权一个新的token。
如果需要直接访问NoteStore.Client对象,可以调用AsyncNoteStoreClient.getClient() 函数生成一个这样的对象。这个对象上的所有调用都是同步的,因此开发者需要自己管理后台的线程操作。
使用SDK

<dependency>
<groupId>com.evernote</groupId>
<artifactId>android-sdk</artifactId>
<version>1.1</version>
<type>apklib</type>
</dependency>
 

如果你正在使用Maven,只需在你的pom.xml文件里面加上依赖即可。如果想手动添加库,请访问我们的Github页面获取指南。
我们衷心的希望,这次SDK更新能够让各位开发者在Android应用中集成印象笔记服务时,更加简单容易。

使用印象笔记

高效记录一切

使用印象笔记 高效记录一切

支持所有设备,随时随地保持高效