我有以下代码,需要大约1.5分钟才能在我测试过的两个平板电脑上找到一个位置,并且在没有启用GSM / CDMA的手机上加载也需要大约30秒。有没有人有任何想法为什么这需要这么长时间没有小区服务运行?我已经声明包含此代码的类是LocationListener。
这是我的代码:
这是我的OnCreate方法:
locationNotificationBus = new EventBus();
locationManager = (LocationManager) getSystemService( Context.LOCATION_SERVICE );
Criteria locationCriteria = new Criteria();
locationCriteria.setAccuracy( Criteria.ACCURACY_COARSE );
String provider = locationManager.getBestProvider( locationCriteria, false );
locationManager.requestLocationUpdates(provider,0,0,this);
这是在类本身内部声明的:
@Override
public void onLocationChanged(Location location) {
Log.wtf( "LOCATOR: ", "Location Has Changed." );
Log.d("New Location", "Lat: " + location.getLatitude() + " Long: " + location.getLongitude());
locationManager.removeUpdates(this);
locationNotificationBus.post(location);
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
Log.d("LOCATOR: ", "Status Has Changed.");
}
@Override
public void onProviderEnabled(String provider) {
Log.d("LOCATOR: ", "Provider enabled.");
}
@Override
public void onProviderDisabled(String provider) {
Log.d("LOCATOR: ", "Provider disabled.");
}
据我了解,Coarse location也可以使用Wi-Fi来确定位置。这不是这种情况吗?如果没有,我该如何使用Wi-Fi?