我通过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);



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

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定位需要在空旷的地方。

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