開発者に向けて公開されているEvernoteAPI情報はいろいろある。
Evernote API Overview
Emacs Evernote mode - Ruby
Mobile Integration Overview
Evernote Affiliate Program
Evernote Site Memory
Everboard - PHP
Note Export Format
Android向け
Evernote for Android
Developing On Android
メモの操作やアクセス方法はいくつかある。
Evernote HTTP API
Thrift API Reference
Evernote Synchronization via EDAM
インテントでEvernote
Androidらしくインテントで公式アプリに渡していく方法もある。
サンプルコードの該当部分を抜粋して分かりやすくコンスタント埋め込みにして例外処理は省く。
暗黙的,明示的,いろいろなタイプで渡せる。
空の新しいノートを開く
Intent intent = new Intent(); intent.setAction("com.evernote.action.CREATE_NEW_NOTE"); startActivity(intent);
タイトルやメモ付きで新しいノートを開く
Intent intent = new Intent(); //intent.setComponent(new ComponentName("com.evernote","com.evernote.ui.NewNoteActivity")); intent.setAction(Intent.ACTION_SEND); intent.setType("text/plain"); intent.putExtra(Intent.EXTRA_TEXT, "This is a sample text file"); intent.putExtra(Intent.EXTRA_TITLE, "New Note with Content"); startActivity(Intent.createChooser(intent, getString(R.string.label_share_using)));
ノート検索結果を表示
Intent intent = new Intent(); intent.setAction("com.evernote.action.SEARCH_NOTES"); intent.putExtra(SearchManager.QUERY, "tag:test"); startActivity(intent);
特定のノートを表示
Intent intent = new Intent(); intent.setAction("com.evernote.action.VIEW_NOTE"); intent.putExtra("NOTE_GUID", "63781676-3c3d-4e56-9999999"); intent.putExtra("FULL_SCREEN", true); startActivity(intent);
画像選択からの新規ノート表示
Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.setType(mimeType);
intent.putExtra(Intent.EXTRA_STREAM, uri);
startActivity(Intent.createChooser(intent, getString(R.string.label_share_using)));
ギャラリー系起動からの画像選択表示
Intent intent = new Intent(Intent.ACTION_PICK,
MediaStore.Images.Media.INTERNAL_CONTENT_URI);
startActivityForResult(intent, SELECT_IMAGE);
ギャラリー系起動からの画像選択受け取り
public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == SELECT_IMAGE) // Callback from our 'startSelectImage' action if (resultCode == Activity.RESULT_OK) { endSelectImage(data); } }
ギャラリー系起動からの画像選択受け取後のEvernoteへの送信
private void endSelectImage(Intent data) { Uri selectedImage = data.getData(); String[] queryColumns = { MediaStore.Images.Media.DATA, MediaStore.Images.Media.MIME_TYPE}; Cursor cursor = getContentResolver().query(selectedImage, queryColumns, null, null, null); cursor.moveToFirst(); String filePath = cursor.getString(cursor.getColumnIndex(queryColumns[0])); String mimeType = cursor.getString(cursor.getColumnIndex(queryColumns[1])); cursor.close(); // Now send the image to Evernote for Android shareImage(Uri.fromFile(new File(filePath)), mimeType); }