Location l = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
lm.requestLocationUpdates(provider, 1000, 0, this);
通过这种方法每次得到的l总是为null,注册监听也没用,有什么解决方法没? 

解决方案 »

  1.   

    注册监听,只有当位置发生改变时,才会获取到新位置信息的~~因为没有update,所以每次获取总是Null 了
      

  2.   

    你得设置监听事件啊,那个 this那个地方应该是 写 listener事件的
    开始 getLastKnownLocation 肯定是 空值LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
            String provider = lm.GPS_PROVIDER;
            
            Location location = lm.getLastKnownLocation(provider);
            
            
            LocationListener locationlistener = new LocationListener()
            { public void onLocationChanged(Location location) {
    // TODO Auto-generated method stub
    if(location != null)
    {
    InitMap(location);
    }

    } public void onProviderDisabled(String provider) {
    // TODO Auto-generated method stub

    } public void onProviderEnabled(String provider) {
    // TODO Auto-generated method stub

    } public void onStatusChanged(String provider, int status,
    Bundle extras) {
    // TODO Auto-generated method stub

    }
            
            };
            
    lm.requestLocationUpdates(provider, 1000*5, 5, locationlistener);  
      

  3.   

    原来是这样啊,我原来也碰到这个问题,是最后没有定位信息,就是空的,网上看了好多说这是模拟器的一个bug,换真机就好了