分类: 嵌入式
2010-12-24 14:27:28
|
同样地,也采取Handler的方式。调用的是handleEnableLocationTracking函数。
|
|
在startNavigating函数中,最有作用的语句就是调用native方法native_start。调用到了JNI层的android_location_GpsLocationProvider_start函数。
android_location_GpsLocationProvider.cpp
|
|
|
|
其实就是注册了一个回调函数,location_cb 这个回调函数就是对底层location数据上报的回调函数。
在enableLocationTracking函数调用完成以后,基本上gps服务已经启动完成了,也就是LocationManagerService中的updateProvidersLocked函数的完成,也就是loadProviders函数的完成,也就是initialize函数的完成,也就是run函数的完成,也就是2.2中反馈机制systemReady的完成。
|
chinaunix网友2011-06-01 20:07:17
希望博主能够将所有回复的问题答案公开化,供大家一起学习。大家问的很多问题我也同样困惑过,比如WIFI定位,AGPS工作原理等等,由于网上说法不一,急切需要博主的回答来判定!谢谢!
chinaunix网友2011-04-15 14:55:50
看了你的文章。收益非浅,能讲解一下agps的工作原理吗,我很期待,或者给我一点指点也行。谢谢了。feiqiyun@126.com
chinaunix网友2011-04-07 10:21:31
楼主,您好! 可否讲解一下,从SecuritySettings里面打开Gps后,是怎样一个过程到LocationManagerService中的吗? 我现在想在我的手机上面加装一个Gps模块,现在的版本中SecuritySettings里面没有开启Gps的选项,我已经通过修改XML文件将其调出,但是打开开关后,使用GpsTest软件检测到GpsOff,也就是说界面上显示已经打开了,实际上还是没有打开。 在对Settings.apk进行反编译后的SecuritySettings.java中,已经增加了mGps相关的代码,刷回系统后并没有报错。 现在怀疑没有和LocationManagerService通信上,可否抽时间指教一二。 非常感谢!langhongjian@163.com
chinaunix网友2011-03-09 11:46:38
楼主,你好,我现在刚开始做GPS开发,发现在froyo上装上Google map,同时关掉GPS,只用网络定位,但是手机无法定位。使用eclair 装上就可以定位。我打了adb log,发现有如下log D/NetworkLocationProvider( 1579): addListener(): apps.maps D/NetworkLocationProvider( 1579): setMinTime: 0 D/NetworkLocationProvider( 1579): enableLocationTracking(): true D/LocationMasfClient( 1579): getNetworkLocation(): Returning cache location with accuracy 536.0 这些log我在froyo上打不出来,但是NetworkLocationProvider这个类在代码里我也没找到,请帮忙解答一下,我邮箱是sky19840819@163.com,非常感谢。