启动安卓应用程序后,GPS始终保持开启状态



在我正在处理的应用程序中,我正在活动的onCreate()方法中获取设备的GPS坐标。但是,即使在启动应用程序后,我也会在设备的通知栏中看到不断闪烁的位置服务图标,这是预期的还是应该在获得设备位置后消失?

这是我目前的代码:

if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
                    == PackageManager.PERMISSION_DENIED)
                ActivityCompat.requestPermissions(this,
                        new String[]{Manifest.permission.ACCESS_FINE_LOCATION},
                        1);
            Criteria criteria = new Criteria();
            LocationManager lm = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
            lm.requestLocationUpdates(lm.getBestProvider(criteria, true), 2000, 0, new android.location.LocationListener() {
                @Override
                public void onLocationChanged(Location location) {
                    double latitude = location.getLatitude();
                    double longitude = location.getLongitude();
                }
                @Override
                public void onStatusChanged(String provider, int status, Bundle extras) {
                }
                @Override
                public void onProviderEnabled(String provider) {
                }
                @Override
                public void onProviderDisabled(String provider) {
                }
            });
            // Get latitude and longitude
            Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
            longitude = location.getLongitude();
            latitude = location.getLatitude();

您永远不会告诉位置管理器停止提供位置更新。为此,请使用正确的侦听器作为参数调用LocationManager.removeUpdates()

或者,您可以使用在第一个位置后自动停止提供更新的LocationManager.requestSingleUpdate(...)

最新更新