博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android定位问题
阅读量:6787 次
发布时间: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/4083156.html

你可能感兴趣的文章
《会说话的代码》英文能力的提升
查看>>
HDOJ_ACM_命运
查看>>
SpringMVC-拦截器
查看>>
MVC5+EF6 简易版CMS(非接口) 第一章:新建项目
查看>>
弹出窗口2window.open()---2011-11-11 09:47 window.open 打开窗口最大化
查看>>
水平居中
查看>>
2016年微软机试题第一题——FontSize
查看>>
matlab函数_连通区域
查看>>
Django自定义过滤器中is_safe和need_autoescape两个参数的理解
查看>>
Poj(1797) Dijkstra对松弛条件的变形
查看>>
有权并查集,Poj(1988)
查看>>
oracle pctfree和pctused详解
查看>>
阻止冒泡
查看>>
ishop服务器端接口配置
查看>>
给锁住的行解锁(oracle)
查看>>
WordPress 背后的故事竟然是这样
查看>>
python作业day1—用户登陆
查看>>
PHP如何判断远程图片文件是否存在
查看>>
使用 @Path and @GET, @POST, 等
查看>>
oracle 查询用户权限
查看>>