0
無論我做什麼,我都無法在沒有啓用wifi的情況下獲取當前位置。啓用了無線網絡時,該代碼的工作只:無法獲取沒有wifi的位置
if(locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER))
provider = LocationManager.GPS_PROVIDER;
else if(locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER))
provider = LocationManager.NETWORK_PROVIDER;
else if(locationManager.isProviderEnabled(LocationManager.PASSIVE_PROVIDER))
provider = LocationManager.PASSIVE_PROVIDER;
Location location = locationManager.getLastKnownLocation(provider);
當無線網絡被禁用,location
爲空。
而下面的代碼永遠不會奏效(即使無線網絡啓用):
protected synchronized void buildGoogleApiClient() {
mGoogleApiClient = new GoogleApiClient.Builder(this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(LocationServices.API)
.build();
}
在onCreate()
:
buildGoogleApiClient();
在onStart()
:
mGoogleApiClient.connect();
而這裏的onConnected()
:
@Override
public void onConnected(Bundle connectionHint) {
mLastLocation = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient);
if(mLastLocation == null)
{
disableButtons();
}
else
{
String userLocation = FindLocation.getLocatoinName(mLastLocation);
userLocationDetails = new LocationStruct(mLastLocation.getLatitude(), mLastLocation.getLongitude(), userLocation);
}
}
Inside onConnected()
,mLastLocation
始終爲空。
我試過兩部手機:聯想A820 API 16和三星Galaxy S4 API 19。兩部手機的結果相同。
'onLocationChanged() '永遠不會叫... –
@Alaa M.你可以發佈你的整個活動,你試試嗎? –