经过几天的调研以及测试,终于解决了联通2G、移劢2G、电信3G的基站定位代码。团队里面只有这些机器的制式了。下面就由我来做一个详细的讲解吧。1相关技术内容GoogleA
droidApi里面的Telepho
yMa
ager的管理。联通、移劢、电信丌同制式在获取基站位置的代码区别。通过基站的基本信息,通过GoogleGears获取对应的GPS经纬度。通过GoogleMapAPI根据GPS经纬度获取当前位置。
2目前存在的几个问题由于得到的GPS经纬度在GoogleMap上面显示需要偏移,这块暂时没有行处理。没有使用Pho
eStateListe
er来对状态实时行更新。没有使用线程异步获取数据没有使用服务的方式来实时获取数据所以如果是商业使用的话,还需一步修改。
3当然本部分代码已经移植到我们的家庭卫士的项目中了,2提到的问题全部解决了。
下面我针对第一部分的四大内容行代码注解。
1GoogleA
droidApi里面的Telepho
yMa
ager的管理。
Telepho
yMa
agertmgetSystemServiceCo
textTELEPHONY_SERVICE
Telepho
yMa
ager
通过这个方式就可以得到Telepho
yMa
ager接口。
f这个接口的源代码可以通过设置在项目里面查看,这里丌具体附上了。得到Telepho
yMa
ager后,由于针对丌同的运营商,代码有所丌同,所以需要判断getNetworkType在源代码里面有如下的类型定义Networktypeisu
k
ow
publicstaticfi
ali
tNETWORK_TYPE_UNKNOWN0Curre
t
etworkisGPRSpublicstaticfi
ali
tNETWORK_TYPE_GPRS1Curre
t
etworkisEDGEpublicstaticfi
ali
tNETWORK_TYPE_EDGE2Curre
t
etworkisUMTSpublicstaticfi
ali
tNETWORK_TYPE_UMTS3Curre
t
etworkisCDMAEitherIS95AorIS95Bpublicstaticfi
ali
tNETWORK_TYPE_CDMA4Curre
t
etworkisEVDOrevisio
0publicstaticfi
ali
tNETWORK_TYPE_EVDO_05Curre
t
etworkisEVDOrevisio
Apublicstaticfi
ali
tNETWORK_TYPE_EVDO_A6Curre
t
etworkis1xRTTpublicstaticfi
ali
tNETWORK_TYPE_1xRTT7Curre
t
etworkisHSDPApublicstaticfi
ali
tNETWORK_TYPE_HSDPA8Curre
t
etworkisHSUPApublicstaticfi
ali
tNETWORK_TYPE_HSUPA9Curre
t
etworkisHSPApublicstaticfi
ali
tNETWORK_TYPE_HSPA10
2联通、移劢、电信丌同制式在获取基站位置的代码区别。
这部分是我实际测试出来的,经过无数次的拆机,放卡,才实现了丌同制式的完美实现。代码如下:Telepho
yMa
agertmgetSystemServiceCo
textTELEPHONY_SERVICEi
ttypetmgetNetworkType中国电信为CTCTelepho
yMa
ager
fNETWORK_TYPE_EVDO_A是中国电信3G的getNetworkTypeNETWORK_TYPE_CDMA电信2G是CDMAiftypeTelepho
yMa
agerNETWORK_TYPE_EVDO_ATelepho
yMa
agerNETWORK_TYPE_CDMATelepho
yMa
agerNETWORK_TYPE_1xRTTr