2015-12-04 2 views
0

Я пытаюсь получить местоположение по GPS в Android (5.1.1) через каждые две минуты. Приложение работает нормально, когда экран включен, но он не получает местоположение по GPS, когда экран выключен. Может ли кто-нибудь предложить мне, что делать? Ниже приведен мой код.Android Lollipop - местоположение GPS не отображается, когда экран выключен

startLoggingService() { 
      if (locManager == null) { 
       locManager=(LocationManager)getSystemService(Context.LOCATION_SERVICE); 
      } 

      final Criteria criteria = new Criteria(); 

      criteria.setAccuracy(Criteria.ACCURACY_FINE); 
      criteria.setAltitudeRequired(true); 
      criteria.setSpeedRequired(true); 
      criteria.setBearingRequired(true); 
      criteria.setPowerRequirement(Criteria.POWER_LOW); 
      criteria.setHorizontalAccuracy(Criteria.ACCURACY_HIGH); 
      String bestprovider = locManager.getBestProvider(criteria, true); 
      if (bestprovider != null && bestprovider.length() > 0) { 
       locManager.requestLocationUpdates(bestprovider, gpsMinTime, 
         gpsMinDistance, locationListener); 
      } 

     } 



private final LocationListener locationListener = new LocationListener() { 
      @Override 
      public void onLocationChanged(Location location) { 

       didFindLocation = true; 
       latitude = location.getLatitude(); 
       longitude = location.getLongitude(); 
       altitude = location.getAltitude(); 
       speed = (float) (location.getSpeed() * 3.6); 
       dt = location.getTime(); 

       gpslatitude = String.valueOf(latitude); 
       gpslongitude = String.valueOf(longitude); 
       gpsaltitude = String.valueOf(altitude); 
       gpsspeed = String.valueOf(speed); 

       SimpleDateFormat sdfDateTime = new SimpleDateFormat(
         "yyyy-MM-dd HH:mm:ss"); 
       datetime = sdfDateTime.format(new Date(dt)); 

      } 

      @Override 
      public void onProviderDisabled(String provider) { 
      } 

      @Override 
      public void onProviderEnabled(String provider) { 
      } 

      @Override 
      public void onStatusChanged(String provider, int status, 
        Bundle extras) { 
      } 
     }; 
+0

Возможный дубликат [ «Sleep» проблема с обновлением местоположения GPS на некоторых устройствах] (http://stackoverflow.com/questions/24106387/sleep-issue-with-gps-location-updates-on-some-devices) –

ответ

0

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

вы должны использовать частичную блокировку бодрствование .... подробнее см this вопрос

Смежные вопросы