2016-05-17 65 views
0

我想GoogleApiClient獲得當前位置與下面這段代碼來獲取當前位置,如何使用googleapiClient然後把標記

@Override 
public void onConnected(@Nullable Bundle bundle) { 
    mLastLocation = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient); 

    if(mLastLocation != null) 
    { 
     currentLat = mLastLocation.getLatitude(); 
     currentLon = mLastLocation.getLongitude(); 
    }else 
    { 
     Toast.makeText(getApplicationContext(), "Cannot get lat and lon", Toast.LENGTH_SHORT).show(); 
    } 
} 

那之後我也希望把標記的當前位置,我的問題是mLastlocation還是空

@Override 
public void onMapReady(GoogleMap googleMap) { 
    dGoogleMap = googleMap; 

    if(mLastLocation != null) 
    { 
     MarkerOptions marker = new MarkerOptions() 
       .position(new LatLng(currentLat, currentLon)) 
       .title("My Current Location"); 

     dGoogleMap.addMarker(marker); 
     dGoogleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(
       new LatLng(currentLat, currentLon), 16)); 
    } 
} 

或者,這是我的錯missunderstand異步的流動,或者只是我的可憐的邏輯需要加以改進。

+0

你有<使用許可權的android:NAME = 「android.permission.ACCESS_FINE_LOCATION」/>或<使用許可權的android:NAME =「android.permission .ACCESS_COARSE_LOCATION「/>清單中的權限?並且還啓用了您正在測試的手機的位置 –

+0

我已經將這些放在了我的Android清單中,並且還在手機中啓用了位置。沒有工作 –

+0

你在marshmellow上測試它嗎? –

回答

0

把下面一行放在onMapReady方法

dGoogleMap.setMyLocationEnabled(true); 
相關問題