当前位置: 首页 > 知识库问答 >
问题:

注册后,Android-GPS定位不更新

张鸿宝
2023-03-14

我正在制作一个定期采样数据的应用程序。由于某种原因,我无法获得GPS数据。以下是我得到的:

舱单:

<uses-permission android:name="android.permission.ACCESS_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
public class GPSWrapper implements ListenerWrapper {
    public static final int SAMPLES = 10;
    public static final int GPS_SENS_TYPE = -1;
    public static final String GPS_SENS_NAME = "gps";
    private LocationManager mLocManager;

    public GPSWrapper(LocationManager locationManager){
        mLocManager = locationManager;
    }

    @Override
    public void sampleSensor() {
        if (mLocManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
            mLocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, new GPSDataCollector());
        }
        if (mLocManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) {
            mLocManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, new GPSDataCollector());
        }
    }

    public void unregister(GPSDataCollector collector) {
        mLocManager.removeUpdates(collector);
    }

    private class GPSDataCollector implements LocationListener{
        public ArrayList<String> m_sensorData;

        public GPSDataCollector(){
            m_sensorData = new ArrayList<>();
        }

        @Override
        public void onLocationChanged(Location location) {
            double latitude = location.getLatitude();
            double longitude = location.getLongitude();
            double altitude = location.getAltitude();
            m_sensorData.add(latitude + ":" + longitude + ":" + altitude);
            DataCollector.getInstance().fillData(GPS_SENS_TYPE, m_sensorData);
            m_sensorData.clear();
            if (m_sensorData.size() >= SAMPLES) {
                unregister(this);
            }
        }

        @Override
        public void onProviderDisabled(String provider) {}

        @Override
        public void onProviderEnabled(String provider) {}

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

我想重申,我没有问题与空位置,函数没有得到调用。

我在外面走了几分钟的时候测试了这个代码,所以卫星接收不是问题。GPS跟踪器图标一直都在。

共有1个答案

符渊
2023-03-14

调用requestLocationUpdates(locationmanager.gps_provider,0,0,new GPSDataCollector());时,每0毫秒和0米请求一次位置更新。传递1000作为第二个参数,以获得每秒的更新。当然GPS信号必须可用。

 类似资料:
  • 我有一个android应用程序,将跟踪用户的位置。它被设置为使用WiFi/网络位置服务,如果可能的话,否则使用GPS_PROVIDER服务。当有wifi连接时,它工作得很好,但当我设置只从GPS获取位置时,应用程序崩溃了。通过测试,我得到了行location=locationmanager.getlastknownlocation(locationmanager.gps_provider);实际上

  • 问题内容: 有没有一种方法可以使GPS一次访问,而不必使用不断检查位置更新的弯针? 在我的场景中,我感兴趣的只是查找当前坐标,而不是与GPS卫星的连续连接。有谁知道如何做到这一点?提前致谢。 问题答案: 首先检查最近知道的位置是否是最近的。如果没有,我相信您必须设置onLocationChanged侦听器,但是一旦获得第一个有效位置,就可以随时停止更新流。 加成

  • 本文向大家介绍Android 定位系统(GPS)开发详解,包括了Android 定位系统(GPS)开发详解的使用技巧和注意事项,需要的朋友参考一下 全球定位系统(Global Positioning System,GPS),是一个中距离圆型轨道卫星导航系统,可以为地球表面的绝大部分地区(98%)提供准确的定位、测速和高精准的时间标准。GPS广泛运用于军事、物流、地理、移动电话、数码相机、航空领域等

  • 我在我的应用程序中使用的是fused location provider,它以60秒的间隔设置为。这通常是有效的,但有时位置在5到10分钟内不会自动更新,当我打开谷歌地图时,它似乎会触发位置更新。 这里还有谁可能遇到过这个问题,或者知道这种行为背后的可能原因?有办法解决这个问题吗?

  • 问题内容: 干杯,我正在尝试通过Android获取当前的GPS位置。我也遵循了这篇教程和Vogellas的文章。虽然没有用。使用LocationManager.NETWORK_PROVIDER时,无论我站在哪里,我总能得到51的纬度和9的经度。当使用LocationManager.GPS_PROVIDER时,我什么也没得到。 虽然使用GMaps时一切正常::S不知道为什么。如何像GMaps一样获取

  • 问题内容: 我没有为此使用模拟位置…实际上,上周代码运行良好。 我有一个可收集GPS数据并使用该应用程序本身生成的X,Y坐标显示Google地图链接的应用程序。我不是100%知道为什么它无法正常运行,但是当我请求该应用根据手机提供的GPS位置建立一个Google地图链接时,它告诉我距离我的位置有5-6个街区起源(当时我实际所在的位置)不完全是我想要的 已知: 我已设置适当的权限 上周所有代码正常工