試試這個:
有你Activity
實施GpsStatus.Listener
和使用
boolean isGpsStarted= false;
public void onGpsStatusChanged(int event) {
switch (event) {
case GpsStatus.GPS_EVENT_SATELLITE_STATUS:
break;
case GpsStatus.GPS_EVENT_FIRST_FIX:
break;
case GpsStatus.GPS_EVENT_STARTED:
isGpsStarted = true;
break;
case GpsStatus.GPS_EVENT_STOPPED:
isGpsStarted = false;
break;
}
}
使用NETWORK_PROVIDER
與requestLocationUpdates
將使用WiFi和細胞定位和更高的精度開啓WLAN編程。定期檢查isGpsStarted
是否爲真,然後切換到GPS_PROVIDER
與requestSingleUpdate
。同時檢查是否需要切換回NETWORK_PROVIDER
並定期更新,如果isGpsStarted
再次變爲錯誤。