Android定位服务在平板电脑上运行缓慢
我有下面的代码,在我测试过的两台平板电脑上查找位置大约需要1.5分钟,在没有启用GSM/CDMA的手机上加载位置也需要大约30秒。有人知道为什么在没有手机服务的情况下运行这么长时间吗?我已将包含此代码的类声明为LocationListener 这是我的密码: 这在我的OnCreate方法中:Android定位服务在平板电脑上运行缓慢,android,android-activity,geolocation,Android,Android Activity,Geolocation,我有下面的代码,在我测试过的两台平板电脑上查找位置大约需要1.5分钟,在没有启用GSM/CDMA的手机上加载位置也需要大约30秒。有人知道为什么在没有手机服务的情况下运行这么长时间吗?我已将包含此代码的类声明为LocationListener 这是我的密码: 这在我的OnCreate方法中: locationNotificationBus = new EventBus(); locationManager = (LocationManager) getSystemService(
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.");
}
据我所知,粗略定位也可以使用Wi-Fi来确定位置。不是这样吗?如果没有,我该如何使用Wi-Fi?因为没有网络连接,它必须等待GPS信号,因为这是现在获取位置的唯一方法,这可能需要一些时间,因为GPS必须从GPS卫星下载年历,然后才能开始计算位置。如果没有任何外部数据,您必须等待年鉴传输。这就是为什么有A-GPS——从更快的“本地”服务获取各种年鉴更新,这意味着你不必等待卫星发送。