0

可能重复:
在 Android 中获取用户当前位置的最简单、最可靠的方法是什么?

我有以下代码在手机上打开谷歌地图并将目的地的经度+纬度和起始位置传递给它。我想知道是否有一种方法可以让我们不必手动在代码中输入起始位置,而是以某种方式让代码自动找出用户的位置?

add.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View arg0) {
        // TODO Auto-generated method stub
        Intent intent = new Intent (android.content.Intent.ACTION_VIEW,
            Uri.parse("http://maps.google.com/maps?saddr=" + 51.5171 +
                      "," + 0.1062 + "&daddr=" + 52.6342 + "," + 1.1385));

        intent.setComponent(
            new ComponentName ("com.google.android.apps.maps",
                               "com.google.android.maps.MapsActivity"));

        startActivity(intent);
    }
});
4

3 回答 3

2

您可以使用此方法:

public LatLng getLocation(Context ctx) 
{
    LocationManager lm = (LocationManager) ctx.getSystemService(Context.LOCATION_SERVICE);
    List<String> providers = lm.getProviders(true);

    /*
     * Loop over the array backwards, and if you get an accurate location,
     * then break out the loop
     */
    Location l = null;

    for (int i = providers.size() - 1; i >= 0; i--) 
    {
        l = lm.getLastKnownLocation(providers.get(i));
        if (l != null)
            break;
    }
    return new LatLng(l.getLatitude(),l.getLongitude());
}
于 2013-01-08T20:57:00.660 回答
0

参考这个问题:在Android上获取用户当前位置最简单、最稳健的方法是什么?

基本上,一旦您获得您的位置,您就可以使用 getLatitude()、getLongitude() 并将它们放入您的 url。

我会推荐比 getLastKnownLocation 更强大的东西,因为它依赖于最后一个已知位置,该位置可能在几小时甚至几天内都没有更新。例如,如果您正在度假,这可能是在地球的错误一侧。

另请查看http://developer.android.com/guide/topics/location/strategies.html了解更多详情。

于 2013-01-08T21:02:08.510 回答
-1

您的问题的分步指南:

http://www.androidcompetencycenter.com/?s=GPS

希望这可以帮助

于 2013-01-08T21:20:10.890 回答