连接到WiFi时,getLastLocation返回null

时间:2014-04-12 19:00:06

标签: android location

ALL,

我有以下问题。这是代码摘录:

@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate( savedInstanceState );
    setContentView( R.layout.main_radar );
    int res = GooglePlayServicesUtil.isGooglePlayServicesAvailable( getApplicationContext() );
    if( res != ConnectionResult.SUCCESS )
    {
        if( BuildConfig.DEBUG )
            Log.i( "Radar", "Check failed!" );
        return;
    }
    if( servicesConnected() )
    {
        client = new LocationClient( this, this, this );
    }
    else
        return;
}

@Override
protected void onStart()
{
    super.onStart();
    if( client != null )
        client.connect();
}

@Override
public void onConnected(Bundle arg0)
{
    currLocation = client.getLastLocation();
    device.setLatitude( currLocation.getLatitude() );
    device.setLongtitude( currLocation.getLongitude() );
}

最初我尝试在连接到4G信号时运行此代码,并立即从getLastLocation()调用接收到该位置。但是,昨天我试图连接到我的局域网WiFi。该计划崩溃了。

试图调查我发现对getLastLocation()的调用返回null。但是连接成功了。

现在,我的问题是:我理解getLastLocation()几乎立即返回位置可能是一个好运,我在WiFi连接上测试显示代码中的错误。但修复它的最佳方法是什么?

似乎人们建议使用位置更新。我没有开发某种地图应用程序。我只需要一次开始即可。

那么,获取位置更新是最好的方法吗?是否可以启用WiFi?获取该位置的通常时间是什么?如果我将等待更新的时间设置得太小,我可能不会收到任何更新。

或者根据定义它可能不起作用?

有人可以请点亮这里。

提前感谢您提供任何提示/点。

0 个答案:

没有答案