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?获取该位置的通常时间是什么?如果我将等待更新的时间设置得太小,我可能不会收到任何更新。
或者根据定义它可能不起作用?
有人可以请点亮这里。
提前感谢您提供任何提示/点。