1

我有一个必须获取实际纬度和经度的应用程序。我正在尝试使用此处发布的代码来执行此操作:如何在 Android 中以编程方式获取当前 GPS 位置?GPSTracker

问题是有时获取位置太慢,有时获取位置已过时。我不需要继续跟踪位置,我只需要在用户按下按钮时获取位置。谷歌的地图应用程序可以这么快,我该怎么做?

4

3 回答 3

1

如何使用新引入的Fused 位置提供程序,参考自:http: //developer.android.com/training/location/retrieve-current.html

public static class MyActivity extends Activity
            implements
                GooglePlayServicesClient.ConnectionCallbacks,
                GooglePlayServicesClient.OnConnectionFailedListener,
                LocationListener {
        private LocationRequest lr;
        private LocationClient lc;
        Location location;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // inflate view
        lr = LocationRequest.create();
        lr.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
        lc = new LocationClient(this,
                this, this);
        lc.connect();
    }

    @Override
    public void onLocationChanged(Location location) {
       //Get new Location here.
    }

    @Override
    public void onConnectionFailed(ConnectionResult arg0) {

    }

    @Override
    public void onConnected(Bundle connectionHint) {
        lc.requestLocationUpdates(lr, this);
        // get last Location
        location = lc.getLastLocation();
    }

    @Override
    public void onDisconnected() {

    }
}
于 2013-09-09T12:31:19.773 回答
0

我相信他们使用这个“新”位置 API。您还可以在此处使用示例代码来帮助您启动和运行。我已经在我正在开发的应用程序中使用了它,并且效果非常好。我使用了“平衡”模式。

http://developer.android.com/google/play-services/location.html

于 2013-09-09T12:31:41.817 回答
0

我可能对此不正确,因为我也是android的新手。

但据我所知,可以通过三种不同的方式找到用户的位置。

  1. 使用 wi-fi 提供商
  2. 使用网络提供商
  3. 使用 GPS 提供程序

与休息相比,从 GPS 获取数据非常慢。

您可以做的是,首先检查网络可用性,如果存在,则从那里获取纬度和经度。

稍后您可以使用 GPS 获得更准确的信息。但最初,从网络获取位置要快得多

于 2013-09-10T13:25:52.043 回答