简体   繁体   English

Android Lollipop-屏幕关闭时无法获取GPS位置

[英]Android Lollipop - GPS location not fetching when screen is off

I am trying to get location by GPS in Android(5.1.1) after every two minutes.The App is working fine when screen is on but it does not get location by GPS when screen is off. 我试图每两分钟通过Android(5.1.1)中的GPS获取位置。该应用在屏幕打开时工作正常,但在屏幕关闭时却无法通过GPS获取位置。 Can anyone suggest me what to do? 谁能建议我该怎么办? Following is my code. 以下是我的代码。

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) {
            }
        };

because your device went to sleep when screen is off... 因为屏幕关闭时您的设备进入了睡眠状态...

you should use partial wake lock .... for more details see this question 您应该使用部分唤醒锁....有关更多详细信息,请参阅问题

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM