博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android定位问题
阅读量:6819 次
发布时间:2019-06-26

本文共 1775 字,大约阅读时间需要 5 分钟。

============问题描述============

各位大神:
如何将GPS,基站定位,WiFi定位有效集成到一起,让系统根据网络化境做出有效的定位方式,谢谢啦

============解决方案1============

楼上说的对,实现locationlistener的onLocationChanged,onProviderDisabled,onProviderEnabled,onStatusChanged接口。

============解决方案2============

但是基站定位和wifi定位(IP)还是需要第三方包依赖的啊,否则你就得自己搭建基站数据库,拿到所有基站的数据,ip也是一样,才能进行解析。

============解决方案3============

如此 你就注册了两个 provider , GPS_PROVIDER & NETWORK_PROVIDER。 但是还是有问题 gps 精度高 可靠, 但是稳定性差 , network方式 速度快 但是不可靠 ,因为位置取决于你使用的代理等原因。至于你的初衷“系统根据网络化境做出有效的定位方式” ,这个可以做一个互动选择让用户自行选定  如果gps获得不了位置 使用网络位置,如果两种方式都有位置信息,且误差超过一定程度 ,让用户自行决定想使用哪个。
引用 9 楼 tomkan 的回复:
private android.location.LocationManager mLocationManager;
LocationListener [] mLocationListeners = new LocationListener[] {
            new LocationListener(android.location.LocationManager.GPS_PROVIDER),
            new LocationListener(android.location.LocationManager.NETWORK_PROVIDER)
    };
if (mLocationManager == null) {
            mLocationManager = (android.location.LocationManager)
                    mContext.getSystemService(Context.LOCATION_SERVICE);
        }
        if (mLocationManager != null) {
            try {
                mLocationManager.requestLocationUpdates(
                        android.location.LocationManager.NETWORK_PROVIDER,
                        1000,
                        0F,
                        mLocationListeners[1]);
            } catch (SecurityException ex) {
                Log.i(TAG, "fail to request location update, ignore", ex);
            } catch (IllegalArgumentException ex) {
                Log.d(TAG, "provider does not exist " + ex.getMessage());
            }
            try {
                mLocationManager.requestLocationUpdates(
                        android.location.LocationManager.GPS_PROVIDER,
                        1000,
                        0F,
                        mLocationListeners[0]);
               
            } catch (SecurityException ex) {
                Log.i(TAG, "fail to request location update, ignore", ex);
            } catch (IllegalArgumentException ex) {
                Log.d(TAG, "provider does not exist " + ex.getMessage());
            }
            Log.d(TAG, "startReceivingLocationUpdates");
        }

转载于:https://www.cnblogs.com/meizhenfen42/p/4035746.html

你可能感兴趣的文章
网速的一些知识整理
查看>>
jQuery.data() 的实现方式
查看>>
linux中VM虚拟内存区域及mmap方法实现
查看>>
Debian install adminer
查看>>
iOS kvo 防止重复添加或者删除监听,实现safe kvo
查看>>
五年程序员想转行却不知所措?你了解时代发展吗?
查看>>
【实战】Docker 入门实战一:ubuntu 和 centos 安装Docker
查看>>
完美解决failed to open stream: HTTP request failed!(file_get_contents引起的)
查看>>
使用另外一个文件中的类—C#基础回顾
查看>>
Mysql常见问题解决
查看>>
MongoDB用户及权限管理(一):角色说明
查看>>
【C语言】获取一个数二进制序列中所有的偶数位和奇数位,分别输出二进制序列...
查看>>
Hyper-V中虚拟机的实时迁移
查看>>
我的友情链接
查看>>
spring事务不回滚
查看>>
Codeigniter Session重构
查看>>
Dubbo-消费者调用服务流程
查看>>
独上高楼,望断天涯处
查看>>
Quartz web图形化界面
查看>>
Pytorch是什么?关于Pytorch!
查看>>