GoogleApiClient未在Service类Android中连接

时间:2016-04-24 21:09:56

标签: java android android-studio google-places-api

您好我想创建一个使用GoogleApiClient的Google地方的服务类,它似乎没有连接,因此无法从中获取地点。

我有方法callPlaceDetectionApi来获取那些地方,在一个活动中它工作正常但在服务类中没有

public class LocationService extends Service implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener, LocationListener {`private void callPlaceDetectionApi() throws SecurityException {
        PendingResult<PlaceLikelihoodBuffer> result = Places.PlaceDetectionApi
                .getCurrentPlace(mGoogleApiClient, null);
        result.setResultCallback(new ResultCallback<PlaceLikelihoodBuffer>() {
            @Override
            public void onResult(PlaceLikelihoodBuffer likelyPlaces) {
                for (PlaceLikelihood placeLikelihood : likelyPlaces) {
                    Log.i(LOG_TAG, String.format("Place '%s' with " + "likelihood: %g", placeLikelihood.getPlace().getName(),
                            placeLikelihood.getLikelihood()));
                    Toast.makeText(mContext, "nombre:" + placeLikelihood.getPlace().getName(),Toast.LENGTH_LONG).show();
                }
                likelyPlaces.release();
            }
        });
    }

这就是我如何构建GoogleApliClient

protected synchronized void buildGoogleApiClient() {
    mGoogleApiClient = new GoogleApiClient.Builder(LocationService.this)
            .addConnectionCallbacks(LocationService.this)
            .addOnConnectionFailedListener(LocationService.this)
            .addApi(LocationServices.API)
            .addApi(Places.PLACE_DETECTION_API)
            .build();
}

我尝试添加.enableAutoManage(LocationService.this,GOOGLE_API_CLIENT_ID,这个),因为当我在一个活动上测试它时,我有它,但是第一个参数是FargmentActivity,因为我在服务类中它会抛出错误。

在我的OnLocationChanged方法上我试图调用“callPlaceDetectionApi()”但是因为它连接它没有做任何事情

if (mGoogleApiClient.isConnected()) {
   callPlaceDetectionApi();
}

修改

我解决了我遇到的问题,我使用了错误的监听器导入,你必须使用

import com.google.android.gms.location.LocationServices;

我使用的是Android LocationServices而不是Google Api LocationService。

0 个答案:

没有答案