Android定位服务在平板电脑上运行缓慢

Android定位服务在平板电脑上运行缓慢,android,android-activity,geolocation,Android,Android Activity,Geolocation,我有下面的代码,在我测试过的两台平板电脑上查找位置大约需要1.5分钟,在没有启用GSM/CDMA的手机上加载位置也需要大约30秒。有人知道为什么在没有手机服务的情况下运行这么长时间吗?我已将包含此代码的类声明为LocationListener 这是我的密码: 这在我的OnCreate方法中: locationNotificationBus = new EventBus(); locationManager = (LocationManager) getSystemService(

我有下面的代码,在我测试过的两台平板电脑上查找位置大约需要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.");
}

据我所知,粗略定位也可以使用Wi-Fi来确定位置。不是这样吗?如果没有,我该如何使用Wi-Fi?

因为没有网络连接,它必须等待GPS信号,因为这是现在获取位置的唯一方法,这可能需要一些时间,因为GPS必须从GPS卫星下载年历,然后才能开始计算位置。如果没有任何外部数据,您必须等待年鉴传输。这就是为什么有A-GPS——从更快的“本地”服务获取各种年鉴更新,这意味着你不必等待卫星发送。