Android 网络定位流程

        上一篇我们记录了 GPS 的定位流程,这一篇记录下 NLP(Network Location Provider)的定位流程,因为在国内,无法使用谷歌提供的NLP,所以国内我们一般会使用三方提供的NLP,比如:百度、高德、腾讯等。

        这里我们假设一个app发起 NLP 定位,首先调用 LocationManager 接口,通过AIDL最终调用到 LocationManagerService 里面的  requestLocationUpdates 方法:

http://androidxref.com/9.0.0_r3/xref/frameworks/base/location/java/android/location/LocationManager.java#requestLocationUpdates

554    public void requestLocationUpdates(String provider, long minTime, float minDistance,
555            LocationListener listener) {
556        checkProvider(provider);
557        checkListener(listener);
558
559        LocationRequest request = LocationRequest.createFromDeprecatedProvider(
560                provider, minTime, minDistance, false);
561        requestLocationUpdates(request, listener, null, null);
562    }

到这里我们就知道了,不管是GPS还是NLP,调用的都是这个接口,区别就是传进去的参数不一样,例如:provider,在Android 里面我们有以下几种provider:

Gps_provider、Network_provider、Passive_provider、Fused_provider、Mock_provider,其中前三种比较常用,Fused_provider依赖三方,比如谷歌GMS包。Mock_provider就是我们常说的伪造位置,一些虚拟定位软件就是基于这个开发的,这里我们暂时不记录,需要的后续单独详细讲。

继续看流程调用:

http://androidxref.com/9.0.0_r3/xref/frameworks/base/services/core/java/com/android/server/LocationManagerService.java#requestLocationUpdates

2061    public void requestLocationUpdates(LocationRequest request, ILocationListener listener
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值