首页 > 解决方案 > Here/Google PositionManager 类在 android sdk 上仅返回 -1.7976931348623157E308 的纬度和经度

问题描述

我看到了一个类似的问题,但它没有正确的答案,

                    PositioningManager pm = PositioningManager.getInstance();
                    pm.start(PositioningManager.LocationMethod.GPS);
                    try {
                        Thread.sleep(5000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    System.out.println("longitude is :"+pm.getPosition().getCoordinate().getLongitude());
                    System.out.println("latitude is :"+pm.getPosition().getCoordinate().getLatitude());
                    System.out.println("geocode is :"+pm.getPosition().getCoordinate());

我已授予 FINE_LOCATION 和 COARSE_LOCATION 权限,但上述代码的输出是

I/System.out: longitude is :-1.7976931348623157E308
I/System.out: latitude is :-1.7976931348623157E308
I/System.out: geocode is :Lat: -1.7976931348623157E308, Long: -1.7976931348623157E308, Alt: 1.073741824E9

有谁知道出了什么问题?

编辑-我将我的数据源更改为谷歌位置服务,但它仍然不起作用

    private void initLocationServices(){
    m_googleLocationDataSource = LocationDataSourceGoogleServices.getInstance();

    if (m_googleLocationDataSource != null) {

        PositioningManager pm = PositioningManager.getInstance();
        pm.setDataSource(m_googleLocationDataSource);
        pm.start(PositioningManager.LocationMethod.GPS);
        userLocation = pm.getPosition().getCoordinate();
        System.out.println("geocode" + userLocation);
        
    }
   }

仍然返回相同的值

标签: javaandroidgoogle-apilocation

解决方案


推荐阅读