您应该能够将GoogleAuthUtil.getToken
(来自Google Play服务)的结果直接传递给GoogleCredential.setAccessToken
(来自Google API客户端库)。
后者的一个例子可以在TasksSample.java中找到。实际上,由于AccountManager.getAuthToken
和GoogleAuthUtil.getToken
API非常相似,除了异步与同步的区别之外,您应该可以修改该Tasks示例以便使用Google Play服务,而不会有太大困难。
一些很粗糙的伪代码将是:
...
// this should all be in a separate thread (e.g. AsyncTask)
final String token = GoogleAuthUtil.getToken(context, email, scope);
GoogleCredential credential = new GoogleCredential();
credential.setAccessToken(token);
Tasks service = new Tasks.Builder(transport, jsonFactory, credential)
.setApplicationName("Google-TasksAndroidSample/1.0")
.setJsonHttpRequestInitializer(new GoogleKeyInitializer(ClientCredentials.KEY))
.build();
List<String> result = new ArrayList<String>();
Tasks.TasksOperations.List listRequest = service.tasks().list("@default");
listRequest.setFields("items/title");
List<Task> tasks = listRequest.execute().getItems();
...
由于它的工作,我不得不做出一些其他的变化,所以我会改变的例子,并很快发布 –