如何获取MapsActivity AndroidStudio上的当前位置

时间:2016-04-15 20:22:11

标签: android android-studio location

我在互联网上的任何地方搜索了一个很好的教程,解释了如何在MapsActivity(Android Studio)上获取用户的位置。但我在论坛中找不到甚至一些解释。

所以这就是我想要的:当用户进入我的应用的地图布局时,他们应该看到他们当前的位置。

我创建了MapsActivity(来自Android Studio),并在我的Manifest上添加了正确的权限。但我不知道用什么函数来获取当前用户的位置以及放置该功能的位置?

以下是MapsActivity的代码:

public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {

    private GoogleMap mMap;

    private GoogleApiClient client;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_maps);
        // Obtain the SupportMapFragment and get notified when the map is ready to be used.
        SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);

        // ATTENTION: This was auto-generated to implement the App Indexing API.
        // See https://g.co/AppIndexing/AndroidStudio for more information.
        client = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build();
    }



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

        // Add a marker in Paris and move the camera
        LatLng paris = new LatLng(48.858930, 2.350831);
        mMap.addMarker(new MarkerOptions().position(paris).title("Marker in Paris"));
        mMap.moveCamera(CameraUpdateFactory.newLatLng(paris));
    }
}

非常感谢!

1 个答案:

答案 0 :(得分:0)

在Google API客户端提供的onConnected()回调中执行此操作,该回调在客户端准备就绪时调用。以下代码段说明了请求和响应的简单处理:

这将为您提供最后的位置。然后,您可以使用上面的代码将相机移动到此处。有关http://developer.android.com/training/location/retrieve-current.html的更多信息。

public class MainActivity extends ActionBarActivity implements
ConnectionCallbacks, OnConnectionFailedListener {
...
@Override
public void onConnected(Bundle connectionHint) {
mLastLocation = LocationServices.FusedLocationApi.getLastLocation(
        mGoogleApiClient);
if (mLastLocation != null) {
    mLatitudeText.setText(String.valueOf(mLastLocation.getLatitude()));
    mLongitudeText.setText(String.valueOf(mLastLocation.getLongitude()));
    }
  }
}