这种症状经常被覆盖,但我没有发现另一个问题,所以这里有相同的标准…… 我正在制作一款在设备提供服务时成功使用GPS的应用.我有一个2.3.4版Android的测试设备.它没有SIM卡,因此不期望
我正在制作一款在设备提供服务时成功使用GPS的应用.我有一个2.3.4版Android的测试设备.它没有SIM卡,因此不期望GPS.但是,它可以通过谷歌地图中的Wifi获取位置.但我的应用无法在此设备上获取位置.在具有服务的设备上,我可以通过将设备置于飞行模式然后重新启用Wifi来获得相同的行为.
在我的应用程序中,我有一个实现LocationListener的gps跟踪类.
在应用程序启动时,运行以下代码:
public Location getLocation() { try { locationManager = (LocationManager) mContext .getSystemService(LOCATION_SERVICE); // getting GPS status isGPSEnabled = locationManager .isProviderEnabled(LocationManager.GPS_PROVIDER); // getting network status isNetworkEnabled = locationManager .isProviderEnabled(LocationManager.NETWORK_PROVIDER); if (!isGPSEnabled && !isNetworkEnabled) { // no network provider is enabled } else { this.canGetLocation = true; // First get location from Network Provider if (isNetworkEnabled) { Log.d(LOG_TAG, "Requesting updates"); //TODO once tested, up the time below locationManager.requestLocationUpdates( LocationManager.NETWORK_PROVIDER, MIN_TIME_BW_UPDATES, MIN_DISTANCE_CHANGE_FOR_UPDATES, this); Log.d("Network", "Network"); if (locationManager != null) { location = locationManager .getLastKnownLocation(LocationManager.NETWORK_PROVIDER); // *** location is null here *** if (location != null) { latitude = location.getLatitude(); longitude = location.getLongitude(); } } } // if GPS Enabled get lat/long using GPS Services if (isGPSEnabled) { if (location == null) { locationManager.requestLocationUpdates( LocationManager.GPS_PROVIDER, MIN_TIME_BW_UPDATES, MIN_DISTANCE_CHANGE_FOR_UPDATES, this); Log.d("GPS Enabled", "GPS Enabled"); if (locationManager != null) { location = locationManager .getLastKnownLocation(LocationManager.GPS_PROVIDER); if (location != null) { latitude = location.getLatitude(); longitude = location.getLongitude(); } } } } } } catch (Exception e) { e.printStackTrace(); } return location; }
请参阅注释“location is null here”.几分钟后启动和后续呼叫就是这种情况.
这些接口函数都没有被调用过:
onLocationChanged
onProviderEnabled
onProviderDisabled
onStatusChanged
我有什么基本的东西吗?看起来位置应该至少在等待一段时间后才能实现.而且,如上所述,谷歌地图在两种设备上都只能使用wifi模式.
原来,收购地点的时间比预期的要长得多.我想大约2分钟.