如何检查 GPS 是否已连接以及位置是否已更新
How to check if GPS is connected and the position updated
GPS需要连接GPS卫星才能实时追踪位置。
问题是有时它可能会失去连接,如果我调用
locationManager.getLastKnownLocation(provider);
我得到了可能与实际位置不同的最后已知位置。
如何在调用/使用之前检查 GPS 是否已连接以及位置是否已更新 getLastKnownLocation
?
您需要为此实施GpsStatus.Listener。
例如,
public class MyActivity extends Activity implements GpsStatus.Listener
{
...
...
...
// add listener into locationManager
locationManager.addGpsStatusListener(this);
@Override
public void onGpsStatusChanged(int)
{
switch (event)
{
case GpsStatus.GPS_EVENT_SATELLITE_STATUS:
break;
case GpsStatus.GPS_EVENT_FIRST_FIX: // this means you found GPS Co-ordinates
break;
case GpsStatus.GPS_EVENT_STARTED:
break;
case GpsStatus.GPS_EVENT_STOPPED:
break;
}
}
}
在您的 Activity
或 Service
:
上实现 GpsStatus.Listener
接口
public class LocationActivity extends Activity implements GpsStatus.Listener
{
private LocationManager locationManager;
@Override
public void onCreate(Bundle savdedInstanceState)
....
....
locationManager = (LocationManager)getSystemService(LOCATION_SERVICE);
locationManager.addGpsStatusListener(this);
}
@Override
public void onGpsStatusChanged(int event)
{
switch (event)
{
case GpsStatus.GPS_EVENT_SATELLITE_STATUS:
break;
case GpsStatus.GPS_EVENT_FIRST_FIX:
/* This is when GPS is activated; add code here for how you want the application to react. */
break;
case GpsStatus.GPS_EVENT_STARTED:
break;
case GpsStatus.GPS_EVENT_STOPPED:
break;
}
}
}
先生,
我也知道这也是一个很大的问题。
无法查看位置是否更新状态。
但是,您可以使用 GpsStatus.Listener
。
它returns getLastKnownLocation
,以前的缓存数据。
最好的方法是不使用 getLastKnownLocation
,只需获取实时 GPS 位置即可。
GPS需要连接GPS卫星才能实时追踪位置。 问题是有时它可能会失去连接,如果我调用
locationManager.getLastKnownLocation(provider);
我得到了可能与实际位置不同的最后已知位置。
如何在调用/使用之前检查 GPS 是否已连接以及位置是否已更新 getLastKnownLocation
?
您需要为此实施GpsStatus.Listener。
例如,
public class MyActivity extends Activity implements GpsStatus.Listener
{
...
...
...
// add listener into locationManager
locationManager.addGpsStatusListener(this);
@Override
public void onGpsStatusChanged(int)
{
switch (event)
{
case GpsStatus.GPS_EVENT_SATELLITE_STATUS:
break;
case GpsStatus.GPS_EVENT_FIRST_FIX: // this means you found GPS Co-ordinates
break;
case GpsStatus.GPS_EVENT_STARTED:
break;
case GpsStatus.GPS_EVENT_STOPPED:
break;
}
}
}
在您的 Activity
或 Service
:
GpsStatus.Listener
接口
public class LocationActivity extends Activity implements GpsStatus.Listener
{
private LocationManager locationManager;
@Override
public void onCreate(Bundle savdedInstanceState)
....
....
locationManager = (LocationManager)getSystemService(LOCATION_SERVICE);
locationManager.addGpsStatusListener(this);
}
@Override
public void onGpsStatusChanged(int event)
{
switch (event)
{
case GpsStatus.GPS_EVENT_SATELLITE_STATUS:
break;
case GpsStatus.GPS_EVENT_FIRST_FIX:
/* This is when GPS is activated; add code here for how you want the application to react. */
break;
case GpsStatus.GPS_EVENT_STARTED:
break;
case GpsStatus.GPS_EVENT_STOPPED:
break;
}
}
}
先生, 我也知道这也是一个很大的问题。 无法查看位置是否更新状态。
但是,您可以使用 GpsStatus.Listener
。
它returns getLastKnownLocation
,以前的缓存数据。
最好的方法是不使用 getLastKnownLocation
,只需获取实时 GPS 位置即可。