MyException - 我的异常网
当前位置:我的异常网» Android » android GPS 获取定位坐标信息解决方法

android GPS 获取定位坐标信息解决方法

www.MyException.Cn  网友分享于:2015-08-26  浏览:0次
android GPS 获取定位坐标信息

如题:
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的
------解决思路----------------------
添加定位权限了吗
------解决思路----------------------
引用:
Quote: 引用:

你首先要确保gps已经定位到啊,没定位到返回肯定是null的


首先  我用的是三星I9300  这款手机我跟三星开发工程师确认过了 具有GPS定位功能   、
然后  loctionManager.addGpsStatusListener(listener);  

 GpsStatus.Listener listener = new GpsStatus.Listener() {  
        public void onGpsStatusChanged(int event) {  
            switch (event) {  
            // 第一次定位  
            case GpsStatus.GPS_EVENT_FIRST_FIX:  
                Log.i(TAG, "第一次定位");  
                break;  
            // 卫星状态改变  
            case GpsStatus.GPS_EVENT_SATELLITE_STATUS:  
                Log.i(TAG, "卫星状态改变");  
                // 获取当前状态  
                GpsStatus gpsStatus = lm.getGpsStatus(null);  
                // 获取卫星颗数的默认最大值  
                int maxSatellites = gpsStatus.getMaxSatellites();  
                // 创建一个迭代器保存所有卫星  
                Iterator<GpsSatellite> iters = gpsStatus.getSatellites()  
                        .iterator();  
                int count = 0;  
                while (iters.hasNext() && count <= maxSatellites) {  
                    GpsSatellite s = iters.next();  
                    count++;  
                }  
                System.out.println("搜索到:" + count + "颗卫星");  
                //Toast.makeText(MainActivity.this, "搜索到:" + count + "颗卫星", Toast.LENGTH_SHORT).show();
                break;  
            // 定位启动  
            case GpsStatus.GPS_EVENT_STARTED:  
                Log.i(TAG, "定位启动");  
                break;  
            // 定位结束  
            case GpsStatus.GPS_EVENT_STOPPED:  
                Log.i(TAG, "定位结束");  
                break;  
            }  
        };  
    };  

这个可以打印出 搜索到的卫星数量  0,1,2,3 不等 

请问下    怎么样确保gps已经定位了 ?  


有卫星数量,但这些不一定可用,你先用gps test测试下,还有,室外的定位效果会好点,室内gps不一定好
------解决思路----------------------
除了室外,无法定位,就是没有gps了。

你先不要updateWithNewLocation(location);
getLastKnownLocation(provider)的定位信息不一定是有的。
直接加监听,缩短延迟看看。
------解决思路----------------------


引用:
Quote: 引用:

除了室外,无法定位,就是没有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的问题

文章评论

程序员应该关注的一些事儿
程序员应该关注的一些事儿
我是如何打败拖延症的
我是如何打败拖延症的
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
每天工作4小时的程序员
每天工作4小时的程序员
2013年中国软件开发者薪资调查报告
2013年中国软件开发者薪资调查报告
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
漫画:程序员的工作
漫画:程序员的工作
为什么程序员都是夜猫子
为什么程序员都是夜猫子
程序员必看的十大电影
程序员必看的十大电影
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
Google伦敦新总部 犹如星级庄园
Google伦敦新总部 犹如星级庄园
一个程序员的时间管理
一个程序员的时间管理
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
程序员和编码员之间的区别
程序员和编码员之间的区别
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
10个调试和排错的小建议
10个调试和排错的小建议
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
老程序员的下场
老程序员的下场
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
那些性感的让人尖叫的程序员
那些性感的让人尖叫的程序员
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
编程语言是女人
编程语言是女人
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
总结2014中国互联网十大段子
总结2014中国互联网十大段子
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
我的丈夫是个程序员
我的丈夫是个程序员
程序员的鄙视链
程序员的鄙视链
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
那些争议最大的编程观点
那些争议最大的编程观点
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
鲜为人知的编程真相
鲜为人知的编程真相
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
Java程序员必看电影
Java程序员必看电影
2013年美国开发者薪资调查报告
2013年美国开发者薪资调查报告
程序员都该阅读的书
程序员都该阅读的书
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有