繁体   English   中英

使用Android获取GPS位置-并非始终有效

[英]get gps location with android - not always working

我正在开发一个android应用程序,其想法是用户登录并将表单发送到数据库。 该表格还包含使用gps的用户的实际位置。

这是我正在使用的代码:

Oncreate->

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

        LocationListener locationListener = new MyLocationListener();
        locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5000, 1, locationListener);

然后上课->

class MyLocationListener implements LocationListener {


        @Override
        public void onLocationChanged(Location loc) {

            long variance;
            variance = age_minutes(loc);


            if (variance < 1) {

                Log.v("asdf","we are inside" + variance);

                posH.longitude = String.valueOf(loc.getLongitude());
                Log.v("asdf", posH.longitude);
                posH.latitude = String.valueOf(loc.getLatitude());
                Log.v("asdf", posH.latitude);

                posH.valid = true;

            } else {

                Log.v("asdf","we are outside" + variance);
                posH.valid = false;
            }


        }

这个问题是,它并不总是有效:例如,我打开表单,按send键,但直到我等待20秒才调用onlocationchanged,有时甚至不调用,有时不调用,如果我移动或不。

我想要一个让我打开表单并自动获取当前gps位置的方法...

您可以使用从最后一次知道的位置开始,直到获得更多当前数据为止。

Location lastKnownLocation = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);

Android定位策略

从移动设备获取用户位置可能很复杂。 位置读数(无论来源如何)可能包含错误且不准确,原因有多种。 用户位置中的一些错误源包括:

  • 大量的定位源GPS,Cell-ID和Wi-Fi均可为用户定位提供线索。 确定要使用和信任的是权衡准确性,速度和电池效率的问题。

  • 用户移动由于用户位置发生变化,因此您必须经常重新估算用户位置来解决移动问题。

  • 变化的准确性来自每个位置来源的位置估计的准确性不一致。 10秒钟前从一个来源获得的位置可能比从另一个或相同来源获得的最新位置更准确。 这些问题可能使得难以获得可靠的用户位置读数。

暂无
暂无

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

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