如题:
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);//高精度
criteria.setAltitudeRequired(false);//不要求海拔
criteria.setBearingRequired(false);//不要求方位
criteria.setCostAllowed(true);//允许有花费
criteria.setPowerRequirement(Criteria.POWER_LOW);//低功耗
String provider=LocationManager.GPS_PROVIDER;
Location location = loctionManager.getLastKnownLocation(provider);
updateWithNewLocation(location);
loctionManager.requestLocationUpdates(provider, 2000, 10, locationListener);
网上搜索了千篇一律都是这种答案 但是各种尝试 各种杯具 loctionManager.getLastKnownLocation(provider); 返回为 null
需要移动网络支持的(百度、谷歌、高德) 只要单纯GPS 获取坐标经纬度 有实现盆友希望提示下 或提供个demo
------解决思路----------------------
你首先要确保gps已经定位到啊,没定位到返回肯定是null的
------解决思路----------------------
添加定位权限了吗
------解决思路----------------------
有卫星数量,但这些不一定可用,你先用gps test测试下,还有,室外的定位效果会好点,室内gps不一定好
------解决思路----------------------
除了室外,无法定位,就是没有gps了。
你先不要updateWithNewLocation(location);
getLastKnownLocation(provider)的定位信息不一定是有的。
直接加监听,缩短延迟看看。
------解决思路----------------------
那
除了室外,无法定位,就是没有gps了。
你先不要updateWithNewLocation(location);
getLastKnownLocation(provider)的定位信息不一定是有的。
直接加监听,缩短延迟看看。
我是放在一个线程里 每隔3s循环一次 一直取值 既然用的GPS定位肯定不是为了获取1个坐标信息 而是获取运动轨迹 上传到服务器 重头到尾 都没有获取到过
这个看了别人的描述
http://www.miui.com/article-8-1.html
这个我没看,但是,loctionManager.requestLocationUpdates(provider, 2000, 10, locationListener);这个设置本身就是隔一段时间就更新当前定位,它已经有这个功能了。为什么又开线程去访问?还有就是,开了线程,你确定3s内就可以定位到当前位置?
------解决思路----------------------
还是不要用默认的定位,因为有的手机是改过的,定不到位,用百度、高德什么的SDK。
可以选择使用什么方式定位的。
------解决思路----------------------
这个跟设备、环境有关
你把手机拿到室外,用GPS TEST工具先定到位之后,再运行你APP试试
------解决思路----------------------
之前我用I9000做开发,死人定位不到,最后找个299的山塞平板,好用得很
------解决思路----------------------
这个例子我用了,可以获取到,可能是楼主device的问题