2013-11-12 4 views
0

В моем приложении я получаю текущее местоположение с помощью сетевого провайдера. В этом отношении я разработал некоторый код, вы можете видеть его ниже.Почему поставщик сетевого местоположения возвращает null? Android

public class MyGPS extends Service implements LocationListener 
{ 
    protected LocationManager locationManager; 
    private final Context mContext; 

    public MyGPS (Context context) { 
     this.mContext = context; 

     getLocation(); 
    } 

    public Location getLocation() { 
     try { 

      locationManager = (LocationManager) mContext.getSystemService(LOCATION_SERVICE); 

      // Check network status 
      if(locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) { 
       Log.e("Location ", "Network enabled"); 

       locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,1000,1, this); 
       if (locationManager != null) 
       { 
        Log.e("Location ", "Location manager is not null"); 
        Location networkLocation= locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER); 
        if (networkLocation != null) { 
         return networkLocation; 
        } 
        else 
        { 
         Log.e("Location ", "networkLocation object is null"); 
        } 
       } 
      } 
     } 
     catch(Exception e) { 
      Log.e("Location ", "Problum in getLocation()"); 
     } 
     return null; 

    } 

    @Override 
    public void onLocationChanged(Location arg0) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void onProviderDisabled(String arg0) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void onProviderEnabled(String arg0) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void onStatusChanged(String arg0, int arg1, Bundle arg2) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public IBinder onBind(Intent arg0) { 
     // TODO Auto-generated method stub 
     return null; 
    } 

} 

Запустив выше фрагмент кода, он показывает отладочную сообщение Log.e("Location ", "networkLocation object is null");

Теперь мой вопрос, почему networkLocation объект является нулевым. Пожалуйста, помогите мне в этом отношении. Заранее спасибо.

+0

возвращает «нуль», когда служба отключена в меню Настройки> Местоположение и безопасность> место через сеть –

ответ

0

Когда устройство получит свое местоположение, оно будет вызывать прослушиватель onLocationChanged. В вышеуказанном случае вы пытаетесь получить lastKnownLocation. Если нет lastKnownLocation, он вернется как null.

Таким образом, пожалуйста, сохраните местоположение с onLocationChanged слушателем.

0

общественное Расположение getLastKnownLocation (поставщик String) Добавлена ​​в API уровня 1

Возвращает Местоположение, указывающие данные из затруднительных последнего известного местоположения , полученных от данного поставщика.

Это можно сделать без запуска провайдера. Обратите внимание, что это местоположение может быть устаревшим, например, если устройство было выключено и переместилось в другое место.

Если провайдер отключен, возвращается null. Параметры поставщик имя поставщика Возвращает

the last known location for the provider, or null 
Смежные вопросы