我现在创建一个应用程序来通过GPS检测设备的位置,我有GPS状态的问题,我通过GpsStatus.Listener看,但它很复杂,因为我是Android的新手。
这是我在GPS状态下尝试做什么我在正确的轨道上???
final Listener onGpsStatusChange = new GpsStatus.Listener() {
@Override
public void onGpsStatusChanged(int event) {
// TODO Auto-generated method stub
switch(event){
case GpsStatus.GPS_EVENT_STARTED:
// Started...
break ;
case GpsStatus.GPS_EVENT_FIRST_FIX:
// First Fix...
break ;
case GpsStatus.GPS_EVENT_STOPPED:
// Stopped...
break ;
}
}
};
我想测试设备是否:
你能解释一下GPS状态吗?谢谢。
修改: 伙计们,到目前为止它非常有帮助,现在我坚持没有改变位置:当用户仍然停留在同一位置然后onLocationChange方法不会解雇我错了吗?那么如何测试它才能发送到服务器? :)
答案 0 :(得分:2)
查看LocationManager,GPS状态是关于GPS引擎本身而非位置通知,并且在所有平台/设备上都不可靠,甚至无法确定您是否已经修复过。
或者是较旧但仍然相关的tutorial
答案 1 :(得分:1)
当从框架调用onGpsStatusChanged()时,意味着有一个有效的gps状态更新。使用getGpsStatus()检索最新的GPS状态更新。
public void onGpsStatusChanged(int event) {
if (event == GpsStatus.GPS_EVENT_STARTED) {
Log.d(TAG , "GPS event started ");
} else if (event == GpsStatus.GPS_EVENT_STOPPED) {
Log.d(TAG , "GPS event stopped ");
} else if (event == GpsStatus.GPS_EVENT_FIRST_FIX) {
GpsStatus gs = locationManager.getGpsStatus(null);
您可以使用上面的代码段。请注意,您需要的某些数据位于GpsStatus结构中。
您需要的其他信息(如新位置)可以从onLocationChanged()回调中获取。