所以我有这个代码:
package com.entu.bocterapp; import android.content.Context; import android.location.Location; import android.location.LocationListener; import android.os.Bundle; import android.widget.Toast; import com.google.android.gms.common.ConnectionResult; import com.google.android.gms.common.GooglePlayServicesUtil; import com.google.android.gms.common.api.GoogleApiClient; import com.google.android.gms.location.LocationRequest; import com.google.android.gms.location.LocationServices; public class LocationManager implements GoogleApiClient.ConnectionCallbacks,GoogleApiClient.OnConnectionFailedListener { private Context mContext; private GoogleApiClient mGoogleApiClient; private Location mLastLocation; private LocationRequest mLocationRequest; public LocationManager(Context context) { mContext = context; // if (checkIfGooglePlayServicesAreAvailable()) { //Get Access to the google service api buildGoogleApiClient(); mGoogleApiClient.connect(); } else { //Use Android Location Services //TODO: } } public Location getCoarseLocation() { if (mLastLocation != null) { return mLastLocation; } else return null; } private synchronized void buildGoogleApiClient() { mGoogleApiClient = new GoogleApiClient.Builder(mContext) .addConnectionCallbacks(this) .addOnConnectionFailedListener(this) .addApi(LocationServices.API) .build(); } private boolean checkIfGooglePlayServicesAreAvailable() { int errorCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(mContext); if (errorCode != ConnectionResult.SUCCESS) { GooglePlayServicesUtil.getErrorDialog(errorCode,(RecentSightings) mContext,0).show(); return false; } return true; } @Override public void onConnected(Bundle bundle) { Location location = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient); if (location != null) { mLastLocation = location; Toast.makeText(mContext,location.getLongitude() + "," + location.getLatitude() + " : " + location.getAccuracy(),Toast.LENGTH_LONG).show(); } } @Override public void onConnectionSuspended(int i) { Toast.makeText(mContext,"suspended",Toast.LENGTH_LONG).show(); } @Override public void onConnectionFailed(ConnectionResult connectionResult) { } }
我想在这个类中获取位置,但onConnected()永远不会被调用(我等了1-2分钟).我使用调试器,它说谷歌播放服务可用.
有谁知道我做错了什么?我被困在这里几个小时,阅读一切,无法让它工作.
干杯!
解决方法
你必须打电话
mGoogleApiClient.connect();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。