знаете ли вы метод или метод, используемый виджетом evernote для извлечения эскизов, которые мы видим очень удобным способом (до извлечения всей заметки) в основном интерфейсе или в виджете? Я видел метод публикации через http-запрос, но он кажется сложным, если не делиться заметками, и, возможно, есть более простые методы через прямой вызов API Evernote или через чтение файлов, хранящихся в приложениях?
Evernote или виджет evernote и миниатюры
Ответы (2)
Виджет извлекает миниатюры из контент-провайдера приложения Evernote.
Что-то вроде этого должно работать.
В вашем манифесте:
<permission android:name="evernote.permission.READ_DATA" android:protectionLevel="normal" />
В вашем Java-коде:
final Uri AUTHORITY_URI = Uri.parse("content://com.evernote.evernoteprovider");
final Uri NOTE_URI = Uri.withAppendedPath(AUTHORITY_URI, "notes");
private FileDescriptor getNoteThumbnail(Context context, String noteGuid) throws FileNotFoundException {
Uri thumbnailUri = NOTE_URI.buildUpon().appendEncodedPath(noteGuid).appendPath("thumbnail").appendPath("data").build();
ContentResolver cr = context.getContentResolver();
return cr.openFileDescriptor(thumbnailUri, "r").getFileDescriptor();
}
Метод HTTP Post не слишком сложен. Я не знаком с Java, но это пример на python, который должен быть довольно простым для переноса на Android:
import requests
ACCESS_TOKEN="INSERT YOUR AUTH TOKEN OR DEV TOKEN HERE"
payload={'auth':ACCESS_TOKEN} #map auth token to param "auth"
r=requests.post('https://sandbox.evernote.com//shard/s1/thm/note/e679c010-d8b2-4644-9eag-56bd31c84be7.jpg?size=75',data=payload, stream=True) #returns a binary of the picture type in header
f=open('thumbnail.jpg','wb') #open file for binary writing
f.write(r.content) #write binary contents of request to a file
f.close() #close the file
Единственным параметром запроса POST является «auth», и он должен содержать ваш токен аутентификации (или токен разработчика). Остальная информация поступает из самого URL и имеет вид:
[domain].evernote.com/shard/[shard]/thm/note/[guid]
куда
[домен] — песочница (для песочницы) и www (для продакшена)
[shard] — это шард, на котором находится учетная запись (должно быть что-то вроде s1)
[guid] — руководство по блокноту
с необязательными параметрами, добавленными в конце .jpg, .gif, .bmp или .png, а также с необязательным параметром в конце URL-адреса ?size=[от 1 до 299] (по умолчанию квадрат 300 пикселей)
например, в песочнице с сегментом s1 обратите внимание на guid "e669c090-d8b2-4324-9eae-56bd31c64af7", чтобы вернуть jpg размером 150 пикселей, URL-адрес будет выглядеть так:
https://sandbox.evernote.com/shard/s1/thm/note/e669c090-d8b2-4324-9eae-56bd31c64af7.jpg?size=75