GoogleApiClient未配置为使用此调用所需的API

时间:2016-09-01 20:39:02

标签: android google-places-api

我正在尝试使用Google Places API获取某个地方的纬度和经度。

我正在关注此示例:Google Directions Android

我像这样配置客户端:

mGoogleApiClient = new GoogleApiClient.Builder(this)
            .addApi(Places.GEO_DATA_API)
            .addApi(Places.PLACE_DETECTION_API)
            .addApi(LocationServices.API)
            .addConnectionCallbacks(this)
            .addOnConnectionFailedListener(this)
            .build();

但接下来:

PendingResult<PlaceBuffer> placeResult = Places.GeoDataApi
                    .getPlaceById(mGoogleApiClient, placeId);

我收到以下错误:

java.lang.IllegalArgumentException: GoogleApiClient is not configured to use the API required for this call.

我该如何解决?

我在Google API控制台上激活了API,我认为我正在配置它,就像示例一样。

2 个答案:

答案 0 :(得分:7)

因此,在与@Daniel讨论之后,解决方案是使用两个不同的GoogleApiClient实例:一个用于LocationServices API,另一个用于Places API。

答案 1 :(得分:0)

只需如下创建两个GoogleApiClient实例并相应地使用:

 GoogleApiClient mGoogleApiClient1,mGoogleApiClient2;

        mGoogleApiClient1 = new GoogleApiClient.Builder(this)
        .addApi(Places.PLACE_DETECTION_API)
        .addApi(LocationServices.API)
        .addConnectionCallbacks(this)
        .addOnConnectionFailedListener(this)
        .build();

        mGoogleApiClient2 = new GoogleApiClient.Builder(this)
        .addApi(Places.GEO_DATA_API)
        .addConnectionCallbacks(this)
        .addOnConnectionFailedListener(this)
        .build();