我有一个必须获取实际纬度和经度的应用程序。我正在尝试使用此处发布的代码来执行此操作:如何在 Android 中以编程方式获取当前 GPS 位置?类GPSTracker
。
问题是有时获取位置太慢,有时获取位置已过时。我不需要继续跟踪位置,我只需要在用户按下按钮时获取位置。谷歌的地图应用程序可以这么快,我该怎么做?
我有一个必须获取实际纬度和经度的应用程序。我正在尝试使用此处发布的代码来执行此操作:如何在 Android 中以编程方式获取当前 GPS 位置?类GPSTracker
。
问题是有时获取位置太慢,有时获取位置已过时。我不需要继续跟踪位置,我只需要在用户按下按钮时获取位置。谷歌的地图应用程序可以这么快,我该怎么做?
如何使用新引入的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() {
}
}
我相信他们使用这个“新”位置 API。您还可以在此处使用示例代码来帮助您启动和运行。我已经在我正在开发的应用程序中使用了它,并且效果非常好。我使用了“平衡”模式。
http://developer.android.com/google/play-services/location.html
我可能对此不正确,因为我也是android的新手。
但据我所知,可以通过三种不同的方式找到用户的位置。
与休息相比,从 GPS 获取数据非常慢。
您可以做的是,首先检查网络可用性,如果存在,则从那里获取纬度和经度。
稍后您可以使用 GPS 获得更准确的信息。但最初,从网络获取位置要快得多