【发布时间】:2016-10-14 09:23:45
【问题描述】:
我正在尝试按照here 的步骤运行 Google People API sample code。不幸的是,它总是从 ListConnectionsResponse 的response.getConnections() 获得空连接。登录成功后在onActivityResult执行下面的AsyncTask:
class PeoplesAsync extends AsyncTask<String, Void, List<String>> {
@Override
protected void onPreExecute() {
super.onPreExecute();
updateUI();
}
@Override
protected List<String> doInBackground(String... params) {
List<String> nameList = new ArrayList<>();
try {
People peopleService = PeopleHelper.setUp(MainActivity.this, params[0]);
ListConnectionsResponse response = peopleService.people().connections()
.list("people/me").setRequestMaskIncludeField("person.names,person.emailAddresses,person.phoneNumbers")
.execute();
List<Person> connections = response.getConnections();
//error: connections is always null
for (Person person : connections) {
if (!person.isEmpty()) {
List<Name> names = person.getNames();
List<EmailAddress> emailAddresses = person.getEmailAddresses();
List<PhoneNumber> phoneNumbers = person.getPhoneNumbers();
if (phoneNumbers != null)
for (PhoneNumber phoneNumber : phoneNumbers)
Log.d(TAG, "phone: " + phoneNumber.getValue());
if (emailAddresses != null)
for (EmailAddress emailAddress : emailAddresses)
Log.d(TAG, "email: " + emailAddress.getValue());
if (names != null)
for (Name name : names)
nameList.add(name.getDisplayName());
}
}
} catch (IOException e) {
e.printStackTrace();
}
return nameList;
}
@Override
protected void onPostExecute(List<String> nameList) {
super.onPostExecute(nameList);
progressBar.setVisibility(View.GONE);
recyclerView.setVisibility(View.VISIBLE);
adapter = new PeopleAdapter(nameList);
recyclerView.setLayoutManager(new LinearLayoutManager(MainActivity.this));
recyclerView.setAdapter(adapter);
}
}
在 Google People API 中导致空响应连接的原因是什么以及如何解决?
【问题讨论】:
标签: android google-api-client google-people-api