0

好的,我在这里引用 Android-Google 文档:http: //developer.android.com/google/play-services/auth.html

它有这部分代码,它在不使用任何对象的情况下调用 getFirstName()。我无法猜测要制作或实现/扩展什么类的对象。

这是代码的那一部分,其余所有内容都在该链接上:

URL url = new URL("https://www.googleapis.com/oauth2/v1/userinfo?access_token=" + token);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
int serverCode = con.getResponseCode();
//successful query
if (serverCode == 200) {
    InputStream is = con.getInputStream();
    String name = getFirstName(readResponse(is)); //THIS LINE!!
    mActivity.show("Hello " + name + "!");
    is.close();
    return;
//bad token, invalidate and get a new one
} else if (serverCode == 401) {
    GoogleAuthUtil.invalidateToken(mActivity, token);
    onError("Server auth error, please try again.", null);
    Log.e(TAG, "Server auth error: " + readResponse(con.getErrorStream()));
    return;
//unknown error, do something else
} else {
    Log.e("Server returned the following error code: " + serverCode, null);
    return;
}

编辑:我想使用 getFirstName() 方法,但出现“无法解决”错误。

4

1 回答 1

0

如果您查看<android-sdk>/extras/google-play-services/samples/auth/AbstractGetNameTask.java,您可以看到 的定义getFirstname

private String getFirstName(String jsonResponse) throws JSONException {
  JSONObject profile = new JSONObject(jsonResponse);
  return profile.getString(NAME_KEY);
}

NAME_KEY在该文件的前面定义:

private static final String NAME_KEY = "given_name";

如果您在 Android SDK 目录中找不到该文件,请打开 Android SDK 管理器并下载“Google Play 服务”。

于 2013-08-25T21:43:15.377 回答