sinat_29970169
sinat_29970169
采纳率0%
2017-12-01 02:28 浏览 5.5k

我通过GPS用locationmanager获取不到位置,不会回调onLocationChanged

我通过GPS用locationmanager根本获取不到位置 不会回调onLocationChanged,室内室外都不行,移动了也不行,用的真机测试

 private LocationListener listener = new LocationListener() {
        @Override
        public void onLocationChanged(Location location) {
            LogUtil.e("onLocationChanged");
            if (location == null) {
                return;
            }

            ToastUtil.showShortToast(MyApplication.getInstance().getApplicationContext(),"获取位置"+location.getLatitude() + "");
            //纬度
            LogUtil.e(location.getLatitude() + "");
            //经度
            LogUtil.e(location.getLongitude() + "");
            sendLocation(location.getLatitude() + "", location.getLongitude() + "");
        }

        @Override
        public void onStatusChanged(String provider, int status, Bundle extras) {
        /*即使某个供应商是enable,也不表示可以从他处监听位置信息,例如GPS是enable的,但是搜索不到卫星,
        状态包括有:OUT_OF_SERVICE,TEMPORARILY_UNAVAILABLE和AVAILABLE*/
        }

        @Override
        public void onProviderEnabled(String provider) {
        /* 当用户在系统设置中,开启某个位置供应商*/
        }

        @Override
        public void onProviderDisabled(String provider) {
        /*当用户在系统设置中,关闭某个供应商。如果某个供应商是disabled,当通过requestLocationUpdate()
        向系统注册监听位置,马上就会触发onProviderDisabled()。*/

        }
    };





        locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, listener);



  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答 默认 最新

  • ggy2l Android搬砖员 2017-12-01 03:08

    一般gps在国内很多都开不了,用自带的话,用网络定位吧....
    locationProvider = LocationManager.NETWORK_PROVIDER;
    locationManager.requestLocationUpdates( locationProvider, 0, 0, locationListener );

    点赞 评论 复制链接分享
  • Gui_m 哥们OnlyRead 2017-12-01 12:56

    1:你用的的是GPS定位,先确定手机是否支持GPS定位。
    //获取所有可用的位置提供器

    List providers = locationManager.getProviders(true);

    if(providers.contains(LocationManager.GPS_PROVIDER)){

        }else if(providers.contains(LocationManager.NETWORK_PROVIDER)){  
    
        }else{  
            Toast.makeText(this, "没有可用的位置提供器", Toast.LENGTH_SHORT).show();  
            return ;  
        }  
    

    2:支持GPS后,第一次定位需要长达五分钟之久,后面定位就快了。
    3:GPS定位需要在空旷的地方。

    点赞 评论 复制链接分享
  • p648811715 遗落之章 2019-09-21 10:54

    我手机也不行,然后切换了下系统语言。就可以了,不知道为啥

    点赞 评论 复制链接分享

相关推荐