我终于搞清楚为什么谷歌地图获取到的联通32g 3g 4g基站设备区别与大

半年4G基站数达到40万 超过3G基站总数 _ 东方财富网()
半年4G基站数达到40万 超过3G基站总数
作者:明宇
东方财富网APP
方便,快捷
手机查看财经快讯
专业,丰富
一手掌握市场脉搏
手机上阅读文章
  8月26日消息,在2014年互联网大会上,人民邮电报总编辑武锁宁与中国电信集团公司创新事业部总经理李安民,集团产品创新部总经理李红五,中国移动市场部副总经理徐刚探讨了4G时代的变革和机遇。  徐刚透露, 中国移动4G网络TD-LTE,运营半年基站数达到40万,超过3G总数,覆盖全国700个城市,在一些乡镇也有所覆盖,4G平均速率,峰值下载速率超过100兆,平均下载速率60兆。  李安民和李红五分别表示,运营FDD-LTE网络两个月以来,发展取得了不错的成果。对于4G带来的变化,李安民表示,无论在通信行业还是互联网行业,谁不重视移动互联网,谁就不可能有大的提升。4G速度的提升,蕴含着更多的商机,为视频等行业发展带来新的契机。(明宇)  以下为访谈实录:  徐刚:我们从去年12月18号推出了4G服务,已经大半年了,现在我们已经建了超过40万个基站,覆盖了全国超过300个城市,基本上大家叫得上名字的城市都已经覆盖了。4G它的特点首先就是速度快,它的速率远远超过3G。现在一个频段,大概峰值能够超过100兆,平常60多兆是很正常的速率。在这种情况之下,4G还有两个特点,一个是非常适合互联网的业务,一个是实现第一,一个是永远在线。  武锁宁:谢谢,刚才徐总介绍的有两个数字,一个就是半年多的时间,TD-LTE的基站数已经达到40万个基站,实际上相当于我们此前3G基站的总数,这是一个大的变化。第二个我们的速率,我们的峰值,下载的速率达到了100兆,这也是我们一个大的变化,比我们过去的概念,我们3G大概是增加了10倍,大概一个数量级。  徐刚:而且还刚开始,随着它的载波聚合,300兆,甚至1G都有可能。  武锁宁:我们知道中国电信和中国联通在今年6月27号,他们不仅是在去年12月4号也获得了TD-LTE的运营牌照,同时今年的6月27号也启动了混合组网,也就是说有TD-LTE制式,同时有国外的FDD这样一个制式也在试验。现在大家也很关心,现在试验的情况怎么样?我们请安民总给大家做一个介绍。  李安民:两个月不到的时间,到目前为止效果非常理想,大家提的混合组网也是4G组网的一个线上很流行的趋势。从我们试验来讲,仅仅是网络,我们跟产业链紧密的结合,包括针对这个业务,包括用户的一些需要,我们进行网络的一些匹配和对产业的一些推动。总的来讲,无论是从产业,还是对用户来讲,对我们这个事业的方向都是非常的好,无论是速率,还是用户的感受,从多方面进行论证,也就是国家做出这样一个决定是非常正确的,并且完全论证了混合组网的可行性和产业链及用户的欢迎性。所以,所有实践的数据表明,这个基础已经非常好,而且也是产业链和用户非常期待。所以,我们基于产业链和用户基站这么一个现状的情况下,我们不断的扩大也是给产业链,给用户一个更好的选择。  武锁宁:我们的混合实验虽然是6月27号,刚刚过去不到两个月,现在实验的效果也很好。中国联通的混合组网实验现在怎么样?  李红五:6月27号发布了混合组网的牌照以来,总体来看,FDD整个试验网络效果非常好。中国联通在4G时代一直秉承移动宽带领先的战略,我们在原有的WCDMA和3G方面构架我们LTE网络,能够使3G网络更好的网络覆盖,加上我们这一领先的LTE技术,我们相信未来能为广大的消费者提供很好的服务。  武锁宁:谢谢李总的介绍,现在看来混合组网实验进展也是很顺利,达到了预期。我们知道混合组网整个LTE的体系,达到预期其中一个很重要的标志就是我们的下行速率能够超过百兆。那么,现在是16个城市,刚才李总也讲到,用户也有这样的一种期待,希望能够把实验的面再扩大一些。这样就标志着我们中国,我们的移动通信完全进入了一个百兆宽网时代。我们此前在3G时代,当然联通来讲,不断的升级比较高,比较快。但是,总体上3G时代,还是在10兆以内,2兆,3兆,10兆这样的。那么,现在可以增加10倍,扩大到10兆。这个将给我们整个产业发展和用户消费提供一个大的新的直面的一个环境。  我们知道当年,五年前,2009年初,1月7号,我们中国的3G牌照的发放,曾给我们的产业发展带来了很大的变化。短短五年时间,我们经历了微博、微信,以及整个移动互联网的整个变化,也成就了电子商务的腾飞,过百亿的这样一个腾飞。我们的移动通信进入4G时代,也就是进入百兆带宽的时代,那么将给我们的行业和产业带来哪些新的变化,能够承接哪些新的互联网络,也请几位专家给我们一起展望一下。李总,你是互联网的专家,你来给大家讲一讲。  李安民:其实我觉得有几个观点,一个是3G的时代给移动互联这么一个用户环境,产业链环境做了一个很好的铺垫,已经铺就了一个非常良好的移动互联的应用产业链。第二、现在目前无论是现状还是趋势,我想大家应该是达成共识,就是移动互联的未来非常大,无论是通信业界,还是互联网业界,包括产业链各界,谁不重视移动互联?谁可能就不会发展。包括互联网的很多企业,很多企业原来在PC互联网行业当中发展的很好,如果在移动互联网重视的不够多,实际上就不会发展的很好。第三、4G我觉得当然首先是一个速率的体现,这个规模现在在3G时代,有一些很好的运维,这对4G时代有很好的提升,这是一个良好的效果。另一方面与数据为主的产业链的一些协同,所做不到的事情,由于4G可能对整个产业链的协同起到很好的作用。比如以前、水电费都要到银行办理,另外银行和水电运营商也不堪重负,以前以速率为核心的一些东西,用户做不到,运营商也做不到,像这些突破肯定会支撑一种新的服务业态的发展,包括行业。现在有一些保险的行业,新的保险业实际上就是用移动互联,借用4G的路率,以这样一个服务,可能占了很好的保险的市场。第四、更主要的是4G不仅仅是速度,它跟其他的,包括云计算,包括智能手机,包括物联网,包括大数据,这几个学科和技术突破交汇融合之后,可能产生新的技术和新的商业的业态。今天我也不做一些具体的预测,像3G当时有很多预测不到,随着技术不断的交融,以4G为主要的突破,我想产业链的协同,包括挖掘业务的潜在的和趋势性的需求,加上产业链的推动,我觉得4G一定会催生新的产业,并且极大的会提升整个产业的价值链。  武锁宁:我们通过3G打通了产业链,要在4G时代整个是得到释放。整个产业链的创新。同时还将深根到产业和行业,还将带动大数据、云计算等的应用,一起来造就一个辉煌的前景,我们很期待这样一个时代的到来!  我们中国移动是宽带用户已经有半年多时间了,而且很多已经商用了,你们有实实在在的数据。进入4G时代以后,业务机构有哪些变化,带来哪些新的机会。  徐刚:这半年来变化非常明显,我们从来没有在半年多的时间建了超过40万个基站,而且它所有终端已经超过300种,客户在这个期间,已经有三千万。它的最大区别就在于,只要变成4G客户,他的流量就会增加很多,他的平均流量大概现在接近1G。它在不断的使用我们的互联网业务,4G突破了时间和空间的概念。有了4G之后,所有的终端都可以连接到互联网上,所以切断了这个界限。这个时间、空闲是很厉害,不仅是说速度,而是整个互联网的时空打开了。我们首当其冲看到的是娱乐的业务,跟生活相关的业务,下一步可能就是跟工业,工业制造,但是对我们来说还有很多传统行业会拥抱互联网。因为打开这个时间、空间之后,会有指数级的增加,这里面有非常多的空间可以去法。  武锁宁:谢谢!我们联通在3G时代,网络速率要快,要高。到4G时代你展望一下,将会在哪些领域方面有一些带动,对产业带来哪些机会?  李红五:这次联通通过3G的发展积累了大量的用户,3G由于技术层面实际上推动4G是最平滑的,从42兆到150兆。从下一步走入4G时代,随着网速的不断提高,我们移动互联网的创新发展提出了更大,更广的空间。我觉得一个来说,首先第一个是4G对我们技术能力的提升,这方面提供一些新的支撑。另一方面随着4G牌照的发放,4G从网络技术的角度来看,网络编码效果也使我们广大消费者网络流量的成本降低了,我们让更多消费者能用得起移动互联网。  邬贺铨:谢谢李总,告诉我们,随着4G时代的到来,会在更多领域会得到应用,而且给更多创业者带来很多机会。同时他也说到我下面要问的一个话题,就是还是通过网络的提速,给更多的消费者带来更便利,价格更优惠的服务。讲到这个问题,我也代表现场的网民跟三位专家探讨一下这个问题。我们知道进入4G时代以后,网速快了,一眨眼流量就过去了。所以,消费者很关心,随着4G时代,一方面我们有了这个便利,另一方面网速流量带来的资费会给我们消费者,给我们广大网民带来一个什么变化?会不会出现最初我们3G刚普及的时候,大家网上传的4G一晚上不关,4G把房子给卖掉了,会不会出现这种情况?我想问一下徐总,中国移动4G的资费现在总体是一个什么情况?跟3G相比是一个什么情况?会不会出现一夜把房子也卖了这个情况?  徐刚:首先,我们现在是500元封顶,第二个是数据封顶,数据封顶之后,可以暂停这个功能。关于资费是这样的,6月1号我们推出了新的资费,现在4G资费大概比3G的时候便宜将近折扣,原来50块钱600兆,现在50块钱1G,原来30块钱280兆,现在是30块钱500兆,实际上比原来便宜很多。还有,大家都可能觉得4G快,因此它流量一定会多。实际说也对,也不对。不对是什么呢?举个例子,比如我们看一个600兆的视频,你用4G看是600兆,用3G看也是600兆,不是因为4G快,而是4G提高他的体验,不会卡,很平滑。比如你看一个文章,你要花两个小时看,还是花一百兆的流量,你拿4G才100兆。其实还是你原来的习惯,只是说,你可能打开他看得多了,原来的速度一个小时看十条,现在可以看很多,这就是一个最大的不同。  武锁宁:我想这个体验可能大家也有,中国有一句老话,好日子总是过的特别快。现在中国移动也做了一个很重要的改进,当你每一年的使用量到了一定程度。  徐刚:我们大概流量余额不足的时候,快用完的时候,用完了都会发短信提醒,而且下一步会推出一些新的举措,比如有一些套餐外的自动叠加,让大家更好,更放心的使用。  武锁宁:跟价格,单价刚才做了一个对比,同样的3G、4G,价格的单价实际上也有一个比较大的下调。我想总的来说,我们的4G时代,我们网民应该更幸福了,网络幸福指数是上升了。  接下来我再问一个问题,我们知道3G时代,我们号紧急启动3G一个目的是为了拉动整个信息产业,拉动整个经济的发展。我记得到号,张德江副总理考察的时候做了一个总结,他说由于3G的启动,当年给制造业拉动了20%的增幅,光纤光缆企业带来了40%的增幅,同时也信息服务企业带来60%这样一些机会的增长。那么,我们现在在各个产业链的各环节都在,我想也预示一下,如果4G时代全面展开,将给企业带来哪些新的机会?给产业链各个环节带来哪些新的机会?  李安民:随着4G的到来,各个产业链,现在目前,特别是在中国互联网大力的推进,中国电信都是采用混合组网的方式,这也是中国特色,我相信随着上下游产业链的发展,我觉得我们混合组网和下一步的终端的发展,我觉得对中国企业也好,对全球企业也好,产业链进行整合,能够更好的适应中国的4G业务的发展。我相信对产业链各方都带来很大的机会。  武锁宁:谢谢李总的分析,我的预测,可能给互联网企业带来的机会会更大。因为过去很多概念性的业务现在都能够跑起来了,过去导航什么业务不适用,现在用起来很牛了,很方便了,我估计给互联网企业也会带来机会,给终端企业也会带来很大的机会。  徐刚:我们现在最直接的业务就是高清视频,比如我们的MV,这些包括大的金融机构,这些发展非常明显,我们几大业务在这方面增长都非常快。下一步,因为互联网能够扩展的空间太大了,相信在生产,生活方面都会有很大的变化。  武锁宁:我想如果是上市公司,你的资本市场对你的市值不一样,一定会迅速增长。我们前面分析了进入4G时代以后给消费者,给产业链跟整个的应用环境会带来很多的变化。但是,我接下来要问一下,给运营商自身的业务会带来什么变化?因为我看到一个数字,今年上半年我们的整个的的增长速度达到了7.4%,但是通信行业业务总收入增幅是下降的。我们从2009年以来的又一次拐点。我们2009年以后,整个通信业务一直是上升的,跟GDP的增长速度是比较协调一致的。但是,今年上半年,我们注意到,随着4G业务的发展,电信业自身的业务收入,尤其是传统的电信业务收入全面下降,因为带宽跑得快,短信从电信短信变成互联网短信了,彩信也在变化,甚至话音业务也出现变化,出现拐点。上半年我知道短信大概下降了20%,彩信下降了40%,话音也开始出现了负增长这样一个拐点。我同样要问一下我们三位,在这种情况下,这种变化给电信业带来的变化我们怎么来看待?另外,我们怎么去适应4G时代,去创新我们的思维,来去创新我们的业务,在这个问题上,我想刚才安民总对上面这个问题发表了看法,对这个问题能不能发表一下你的高见。  李安民:4G时代,如果我们不革新思路,这里面的核心问题我觉得一个是客户获取的方式和价值创造的方式都可能变化,可能这个空间是有限的,并且也是非常危险的。事实上电信运营商,电信行业跟互联网行业的很多特征明显,包括相应速率更快,效率更高等等,这几种体现,我刚刚讲的两个方式,就是客户获取的方式,我们价值方式基本上是前向的,一开始是前向的收费的模式,绝大多数价值创造是多样的,所以提示我们一定要转变思路。这一次结构的事情,我想我们去年最主要的是互联网,一句话,发挥电信的资源优势,用互联网思路做差异化的事情。我举个最简单的例子,4G时代的流量,从前向流量来讲,这个时候如果不转变思路,经营流量,可能给运营商,包括给整个产业,用户所带来的发展是有限的。所以,这里从流量来讲,因为流量也是运营商衔接用户和产业链很重要的一个纽带。我想从三个层面举这个例子,就是我们如何推进互联网化的转型。一个就是要把单纯的经营流量向内容流量转化,就是有价值的内容和流量如何一体化经营,实际上这个就是运营商要给我们的优势。第二,从前向流量经营,专项前后向结合,以后向为主经营的模式,这个事实上也是要运营商发挥我们的优势和产业链各方一起来做。第三、就是流量隐含了很多数据的价值,我们进行深层次的挖掘,可以给用户,产业链,包括用户进行更多的一些价值的挖掘。从这三个层面,无一例外不是在改变客户获取的方式和价值创造的方式,这跟传统流量经营的模式是完全不一样的。所以,我们要真情实感,在客户获取方式和价值创造方式我们进行变革,这个空间是无限的。  徐刚:有一个数据我想沟通一下,实际上上半年整个行业是上升的,你看到下降是因为我们税率改变了增长方式,实际上整个行业同比同期,同口径还是上涨的,对运营商来讲,收入的结构发生变化了,流量起来了。  武锁宁:刚才李总和徐总都做了很好的阐述,看来电信运营商对这样一个变化还是有主动的适应的这样一些思路。李总刚才讲到,早几年叫去电信化,刚才李总给我们传达了重要信息,叫互联网化,但是他们讲互联网化不是跟我们一般互联网企业做一样的事情,而是按照差异这样一个分工,来做这方面的创新。因为我们整个产业链要求协调发展,可能需要我们产业链各个环节都能得到比较好的发展。本来,李总也很好的准备,但是刚才会务组提醒我时间已经到了,没有关系,接下来我们人民邮电报的记者,还要访问我们几位嘉宾,明天我们将在报纸上刊登出来和大家共享。这个环节就到此结束!谢谢各位嘉宾。
(责任编辑:DF150)
[热门]&&&[关注]&&&
举报原因:
人身攻击 
侵权(诽谤、抄袭、冒用等)
举报邮箱:
举报成功!
请下载东方财富产品,查看实时行情和更多数据
网友点击排行
郑重声明:东方财富网发布此信息目的在于传播更多信息,与本网站立场无关。东方财富网不保证该信息(包括但不限于文字、数据及图表)全部或者部分内容的准确性、真实性、完整性、有效性、及时性、原创性等。相关信息并未经过本网站证实,不对您构成任何投资建议,据此操作,风险自担。
扫一扫下载APP
东方财富产品
关注东方财富
天天基金网
扫一扫下载APP
关注天天基金android&GSM+CDMA基站定位
工程下载链接:
在googleAPI里提供了基站信息的获取类TelephonyManager,通过其方法getCellLocation得到CellLocation即可获取到基站相关信息
但CellLocation是个抽象类,所以在具体使用时需要判断接入的网络制式来用其子类CdmaCellLocation或GsmCellLocation 来强转
CdmaCellLocation对应CDMA网,GsmCellLocation对应GSM网
三大网络运营商的网络制式对应如下:
移动2G 网 --& GSM
移动3G 网 --& TD-SCDMA
电信2G 网 --& CDMA
电信3G 网 --& CDMA2000
联通2G 网 --& GSM
联通3G 网 --& WCDMA
由此可见移动,联通2G 网都可使用GsmCellLocation
电信2G,3G网则使用CdmaCellLocation
那么移动3G和联通3G又当如何
其实经本人亲测,移动3G网也可使用GsmCellLocation,听说是TD-SCDMA衍生于GSM,具体原因咱也不用纠结了,反正能用就是了
而联通的WCDMA据说也可使用GsmCellLocation,那姑且就是这样吧,有条件的童鞋试一试吧。
对于网络制式的判断调用TelephonyManager.getNetworkType()可有多种情况,如下:
NETWORK_TYPE_UNKNOWN
NETWORK_TYPE_GPRS
NETWORK_TYPE_EDGE
NETWORK_TYPE_UMTS
NETWORK_TYPE_HSDPA
NETWORK_TYPE_HSUPA
NETWORK_TYPE_HSPA
NETWORK_TYPE_CDMA
NETWORK_TYPE_EVDO_0
NETWORK_TYPE_EVDO_A
NETWORK_TYPE_EVDO_B
NETWORK_TYPE_1xRTT
NETWORK_TYPE_IDEN
NETWORK_TYPE_LTE
NETWORK_TYPE_EHRPD
通过对网络类型判断后获取对应基站信息代码片段如下:
public&static&ArrayList&CellIDInfo&&getCellIDInfo(Context&context)&throws&Exception{
&&&&&&&&TelephonyManager&manager&=&(TelephonyManager)&context.getSystemService(Context.TELEPHONY_SERVICE);
&&&&&&&&ArrayList&CellIDInfo&&CellID&=&new&ArrayList&CellIDInfo&();
&&&&&&&&CellIDInfo&currentCell&=&new&CellIDInfo();
&&&&&&&&int&type&=&manager.getNetworkType();
&&&&&&&&Log.d(TAG,&"getCellIDInfo--&&&&&&&&&&NetworkType&=&"&+&type);
&&&&&&&&int&phoneType&=&manager.getPhoneType();
&&&&&&&&Log.d(TAG,&"getCellIDInfo--&&&&&&&&&&phoneType&=&"&+&phoneType);
&&&&&&&&if&(type&==&TelephonyManager.NETWORK_TYPE_GPRS&&&&&&&&&&&&&&//&GSM网
&&&&&&&&&&&&&&&&||&type&==&TelephonyManager.NETWORK_TYPE_EDGE
&&&&&&&&&&&&&&&&||&type&==&TelephonyManager.NETWORK_TYPE_HSDPA)
&&&&&&&&&&&&GsmCellLocation&gsm&=&((GsmCellLocation)&manager.getCellLocation());
&&&&&&&&&&&&if&(gsm&==&null)
&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&Log.e(TAG,&"GsmCellLocation&is&null!!!");
&&&&&&&&&&&&&&&&return&
&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&
&&&&&&&&&&&&int&lac&=&gsm.getLac();
&&&&&&&&&&&&String&mcc&=&manager.getNetworkOperator().substring(0,&3);
&&&&&&&&&&&&String&mnc&=&manager.getNetworkOperator().substring(3,&5);
&&&&&&&&&&&&int&cid&=&gsm.getCid();
&&&&&&&&&&&&
&&&&&&&&&&&&currentCell.cellId&=&gsm.getCid();
&&&&&&&&&&&&currentCell.mobileCountryCode&=&mcc;
&&&&&&&&&&&&currentCell.mobileNetworkCode&=&mnc;
&&&&&&&&&&&&currentCell.locationAreaCode&=&lac;
&&&&&&&&&&&&
&&&&&&&&&&&&currentCell.radioType&=&"gsm";
&&&&&&&&&&&&
&&&&&&&&&&&&CellID.add(currentCell);
&&&&&&&&&&&&
&&&&&&&&&&&&//&获得邻近基站信息
&&&&&&&&&&&&List&NeighboringCellInfo&&list&=&manager.getNeighboringCellInfo();
&&&&&&&&&&&&int&size&=&list.size();
&&&&&&&&&&&&for&(int&i&=&0;&i&&&size;&i++)&{
&&&&&&&&&&&&&&&&CellIDInfo&info&=&new&CellIDInfo();
&&&&&&&&&&&&&&&&info.cellId&=&list.get(i).getCid();
&&&&&&&&&&&&&&&&info.mobileCountryCode&=&mcc;
&&&&&&&&&&&&&&&&info.mobileNetworkCode&=&mnc;
&&&&&&&&&&&&&&&&info.locationAreaCode&=&lac;
&&&&&&&&&&&&
&&&&&&&&&&&&&&&&CellID.add(info);
&&&&&&&&&&&&}
&&&&&&&&&&&&
&&&&&&&&}else&if&(type&==&TelephonyManager.NETWORK_TYPE_CDMA&&&&&&&&//&电信cdma网
&&&&&&&&&&&&&&&&||&type&==&TelephonyManager.NETWORK_TYPE_1xRTT
&&&&&&&&&&&&&&&&||&type&==&TelephonyManager.NETWORK_TYPE_EVDO_0
&&&&&&&&&&&&&&&&||&type&==&TelephonyManager.NETWORK_TYPE_EVDO_A)
&&&&&&&&&&&&
&&&&&&&&&&&&CdmaCellLocation&cdma&=&(CdmaCellLocation)&manager.getCellLocation();&&&
&&&&&&&&&&&&if&(cdma&==&null)
&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&Log.e(TAG,&"CdmaCellLocation&is&null!!!");
&&&&&&&&&&&&&&&&return&
&&&&&&&&&&&&}
&&&&&&&&&&&&
&&&&&&&&&&&&int&lac&=&cdma.getNetworkId();
&&&&&&&&&&&&String&mcc&=&manager.getNetworkOperator().substring(0,&3);
&&&&&&&&&&&&String&mnc&=&String.valueOf(cdma.getSystemId());
&&&&&&&&&&&&int&cid&=&cdma.getBaseStationId();
&&&&&&&&&&&&
&&&&&&&&&&&&currentCell.cellId&=&cid;
&&&&&&&&&&&&currentCell.mobileCountryCode&=&mcc;
&&&&&&&&&&&&currentCell.mobileNetworkCode&=&mnc;
&&&&&&&&&&&&currentCell.locationAreaCode&=&lac;
&&&&&&&&&&&&currentCell.radioType&=&"cdma";
&&&&&&&&&&&&
&&&&&&&&&&&&CellID.add(currentCell);
&&&&&&&&&&&&
&&&&&&&&&&&&//&获得邻近基站信息
&&&&&&&&&&&&List&NeighboringCellInfo&&list&=&manager.getNeighboringCellInfo();
&&&&&&&&&&&&int&size&=&list.size();
&&&&&&&&&&&&for&(int&i&=&0;&i&&&size;&i++)&{
&&&&&&&&&&&&&&&&CellIDInfo&info&=&new&CellIDInfo();
&&&&&&&&&&&&&&&&info.cellId&=&list.get(i).getCid();
&&&&&&&&&&&&&&&&info.mobileCountryCode&=&mcc;
&&&&&&&&&&&&&&&&info.mobileNetworkCode&=&mnc;
&&&&&&&&&&&&&&&&info.locationAreaCode&=&lac;
&&&&&&&&&&&&
&&&&&&&&&&&&&&&&CellID.add(info);
&&&&&&&&&&&&}
&&&&&&&&return&CellID;
&&&&&&&&&&&&
public static ArrayList&CellIDInfo& getCellIDInfo(Context context) throws Exception{
TelephonyManager manager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
ArrayList&CellIDInfo& CellID = new ArrayList&CellIDInfo&();
CellIDInfo currentCell = new CellIDInfo();
int type = manager.getNetworkType();
Log.d(TAG, "getCellIDInfo--&
NetworkType = " + type);
int phoneType = manager.getPhoneType();
Log.d(TAG, "getCellIDInfo--&
phoneType = " + phoneType);
if (type == TelephonyManager.NETWORK_TYPE_GPRS
|| type == TelephonyManager.NETWORK_TYPE_EDGE
|| type == TelephonyManager.NETWORK_TYPE_HSDPA)
GsmCellLocation gsm = ((GsmCellLocation) manager.getCellLocation());
if (gsm == null)
Log.e(TAG, "GsmCellLocation is null!!!");
int lac = gsm.getLac();
String mcc = manager.getNetworkOperator().substring(0, 3);
String mnc = manager.getNetworkOperator().substring(3, 5);
int cid = gsm.getCid();
currentCell.cellId = gsm.getCid();
currentCell.mobileCountryCode =
currentCell.mobileNetworkCode =
currentCell.locationAreaCode =
currentCell.radioType = "gsm";
CellID.add(currentCell);
// 获得邻近基站信息
List&NeighboringCellInfo& list = manager.getNeighboringCellInfo();
int size = list.size();
for (int i = 0; i & i++) {
CellIDInfo info = new CellIDInfo();
info.cellId = list.get(i).getCid();
info.mobileCountryCode =
info.mobileNetworkCode =
info.locationAreaCode =
CellID.add(info);
}else if (type == TelephonyManager.NETWORK_TYPE_CDMA
// 电信cdma网
|| type == TelephonyManager.NETWORK_TYPE_1xRTT
|| type == TelephonyManager.NETWORK_TYPE_EVDO_0
|| type == TelephonyManager.NETWORK_TYPE_EVDO_A)
CdmaCellLocation cdma = (CdmaCellLocation) manager.getCellLocation();
if (cdma == null)
Log.e(TAG, "CdmaCellLocation is null!!!");
int lac = cdma.getNetworkId();
String mcc = manager.getNetworkOperator().substring(0, 3);
String mnc = String.valueOf(cdma.getSystemId());
int cid = cdma.getBaseStationId();
currentCell.cellId =
currentCell.mobileCountryCode =
currentCell.mobileNetworkCode =
currentCell.locationAreaCode =
currentCell.radioType = "cdma";
CellID.add(currentCell);
// 获得邻近基站信息
List&NeighboringCellInfo& list = manager.getNeighboringCellInfo();
int size = list.size();
for (int i = 0; i & i++) {
CellIDInfo info = new CellIDInfo();
info.cellId = list.get(i).getCid();
info.mobileCountryCode =
info.mobileNetworkCode =
info.locationAreaCode =
CellID.add(info);
return CellID;
从GOOGLE的API文档里总共有14钟网络类型,这里只罗列了其中7种,其他的主要是本人也不太清楚其对应到的网络制式是怎样的
所以部分童鞋的SIM卡网络制式不在这7种之内,自己根据实际情况看看它是归类于GSM还是CDMA在添进去就可以了
网络上多数教程是讲GSM网获取基站的,而忽略了C网的基站
这里我们可以比较一下GSM 和 CDMA 在获取基站信息时的不同之处
int lac = gsm.getLac();
String mcc = manager.getNetworkOperator().substring(0, 3);
String mnc = manager.getNetworkOperator().substring(3, 5);
int cid = gsm.getCid();
int lac = cdma.getNetworkId();
String mcc = manager.getNetworkOperator().substring(0, 3);
String mnc = String.valueOf(cdma.getSystemId());
int cid = cdma.getBaseStationId();
在获取区域码LAC时GSM使用的是GsmCellLocation.getLac(),CDMA则用CdmaCellLocation.getNetworkId()来代替
在获取基站ID时GSM使用的是GsmCellLocation.getCid(),CDMA则用CdmaCellLocation.getBaseStationId()来代替
前面获取到的都是单个基站的信息,后面再获取周围邻近基站信息以辅助通过基站定位的精准性
TelephonyManager.getNeighboringCellInfo(),将其也放入基站信息LIST表中
最后通过google提供的gear接口获取经纬度,代码如下:
public&static&Location&callGear(List&CellIDInfo&&cellID)&{
&&&&&&&&&&&&if&(cellID&==&null&||&cellID.size()&==&0)&
&&&&&&&&&&&&&&&&&&&&return&
&&&&&&&&&&&&
&&&&&&&&&&&&DefaultHttpClient&client&=&new&DefaultHttpClient();
&&&&&&&&&&&&&&&&HttpPost&post&=&new&HttpPost("/loc/json");
&&&&&&&&&&&&&&&&JSONObject&holder&=&new&JSONObject();
&&&&&&&&&&&&&&&&try&{
&&&&&&&&&&&&&&&&&&&&&&&&holder.put("version",&"1.1.0");
&&&&&&&&&&&&&&&&&&&&&&&&holder.put("host",&"");
&&&&&&&&&&&&&&&&&&&&&&&&holder.put("home_mobile_country_code",&cellID.get(0).mobileCountryCode);
&&&&&&&&&&&&&&&&&&&&&&&&holder.put("home_mobile_network_code",&cellID.get(0).mobileNetworkCode);
&&&&&&&&&&&&&&&&&&&&&&&&holder.put("radio_type",&cellID.get(0).radioType);
&&&&&&&&&&&&&&&&&&&&&&&&holder.put("request_address",&true);
&&&&&&&&&&&&&&&&&&&&&&&&if&("460".equals(cellID.get(0).mobileCountryCode))&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&holder.put("address_language",&"zh_CN");
&&&&&&&&&&&&&&&&&&&&&&&&else
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&holder.put("address_language",&"en_US");
&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&JSONObject&data,current_
&&&&&&&&&&&&&&&&&&&&&&&&JSONArray&array&=&new&JSONArray();
&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&current_data&=&new&JSONObject();
&&&&&&&&&&&&&&&&&&&&&&&&current_data.put("cell_id",&cellID.get(0).cellId);
&&&&&&&&&&&&&&&&&&&&&&&&current_data.put("location_area_code",&cellID.get(0).locationAreaCode);
&&&&&&&&&&&&&&&&&&&&&&&&current_data.put("mobile_country_code",&cellID.get(0).mobileCountryCode);
&&&&&&&&&&&&&&&&&&&&&&&&current_data.put("mobile_network_code",&cellID.get(0).mobileNetworkCode);
&&&&&&&&&&&&&&&&&&&&&&&&current_data.put("age",&0);
&&&&&&&&&&&&&&&&&&&&&&&&current_data.put("signal_strength",&-60);
&&&&&&&&&&&&&&&&&&&&&&&&current_data.put("timing_advance",&5555);
&&&&&&&&&&&&&&&&&&&&&&&&array.put(current_data);
&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&if&(cellID.size()&&&2)&{
&&&&&&&&&&&&&&&&&&&&&&&&&&&&for&(int&i&=&1;&i&&&cellID.size();&i++)&{
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&data&=&new&JSONObject();
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&data.put("cell_id",&cellID.get(i).cellId);
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&data.put("location_area_code",&cellID.get(i).locationAreaCode);
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&data.put("mobile_country_code",&cellID.get(i).mobileCountryCode);
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&data.put("mobile_network_code",&cellID.get(i).mobileNetworkCode);
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&data.put("age",&0);
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&array.put(data);
&&&&&&&&&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&holder.put("cell_towers",&array);
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&StringEntity&se&=&new&StringEntity(holder.toString());
&&&&&&&&&&&&&&&&&&&&&&&&Log.e("Location&send",&holder.toString());
&&&&&&&&&&&&&&&&&&&&&&&&post.setEntity(se);
&&&&&&&&&&&&&&&&&&&&&&&&HttpResponse&resp&=&client.execute(post);
&&&&&&&&&&&&&&&&&&&&&&&&HttpEntity&entity&=&resp.getEntity();
&&&&&&&&&&&&&&&&&&&&&&&&BufferedReader&br&=&new&BufferedReader(
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&new&InputStreamReader(entity.getContent()));
&&&&&&&&&&&&&&&&&&&&&&&&StringBuffer&sb&=&new&StringBuffer();
&&&&&&&&&&&&&&&&&&&&&&&&String&result&=&br.readLine();
&&&&&&&&&&&&&&&&&&&&&&&&while&(result&!=&null)&{
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Log.e("Locaiton&reseive--&",&result);
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&sb.append(result);
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&result&=&br.readLine();
&&&&&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&data&=&new&JSONObject(sb.toString());
&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&data&=&(JSONObject)&data.get("location");
&&&&&&&&&&&&&&&&&&&&&&&&Location&loc&=&new&Location(LocationManager.NETWORK_PROVIDER);
&&&&&&&&&&&&&&&&&&&&&&&&loc.setLatitude((Double)&data.get("latitude"));
&&&&&&&&&&&&&&&&&&&&&&&&loc.setLongitude((Double)&data.get("longitude"));
&&&&&&&&&&&&&&&&&&&&&&&&loc.setAccuracy(Float.parseFloat(data.get("accuracy").toString()));
&&&&&&&&&&&&&&&&&&&&&&&&loc.setTime(&System.currentTimeMillis());//AppUtil.getUTCTime());
&&&&&&&&&&&&&&&&&&&&&&&&return&
&&&&&&&&&&&&&&&&}&catch&(JSONException&e)&{
&&&&&&&&&&&&&&&&&&&&&&&&e.printStackTrace();
&&&&&&&&&&&&&&&&&&&&&&&&return&
&&&&&&&&&&&&&&&&}&catch&(UnsupportedEncodingException&e)&{
&&&&&&&&&&&&&&&&&&&&&&&&e.printStackTrace();
&&&&&&&&&&&&&&&&}&catch&(ClientProtocolException&e)&{
&&&&&&&&&&&&&&&&&&&&&&&&e.printStackTrace();
&&&&&&&&&&&&&&&&}&catch&(IOException&e)&{
&&&&&&&&&&&&&&&&&&&&&&&&e.printStackTrace();
&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&return&
&&&&&&&&}&&
public static Location callGear(List&CellIDInfo& cellID) {
if (cellID == null || cellID.size() == 0)
DefaultHttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("/loc/json");
JSONObject holder = new JSONObject();
holder.put("version", "1.1.0");
holder.put("host", "");
holder.put("home_mobile_country_code", cellID.get(0).mobileCountryCode);
holder.put("home_mobile_network_code", cellID.get(0).mobileNetworkCode);
holder.put("radio_type", cellID.get(0).radioType);
holder.put("request_address", true);
if ("460".equals(cellID.get(0).mobileCountryCode))
holder.put("address_language", "zh_CN");
holder.put("address_language", "en_US");
JSONObject data,current_
JSONArray array = new JSONArray();
current_data = new JSONObject();
current_data.put("cell_id", cellID.get(0).cellId);
current_data.put("location_area_code", cellID.get(0).locationAreaCode);
current_data.put("mobile_country_code", cellID.get(0).mobileCountryCode);
current_data.put("mobile_network_code", cellID.get(0).mobileNetworkCode);
current_data.put("age", 0);
current_data.put("signal_strength", -60);
current_data.put("timing_advance", 5555);
array.put(current_data);
if (cellID.size() & 2) {
for (int i = 1; i & cellID.size(); i++) {
data = new JSONObject();
data.put("cell_id", cellID.get(i).cellId);
data.put("location_area_code", cellID.get(i).locationAreaCode);
data.put("mobile_country_code", cellID.get(i).mobileCountryCode);
data.put("mobile_network_code", cellID.get(i).mobileNetworkCode);
data.put("age", 0);
array.put(data);
holder.put("cell_towers", array);
StringEntity se = new StringEntity(holder.toString());
Log.e("Location send", holder.toString());
post.setEntity(se);
HttpResponse resp = client.execute(post);
HttpEntity entity = resp.getEntity();
BufferedReader br = new BufferedReader(
new InputStreamReader(entity.getContent()));
StringBuffer sb = new StringBuffer();
String result = br.readLine();
while (result != null) {
Log.e("Locaiton reseive--&", result);
sb.append(result);
result = br.readLine();
data = new JSONObject(sb.toString());
data = (JSONObject) data.get("location");
Location loc = new Location(LocationManager.NETWORK_PROVIDER);
loc.setLatitude((Double) data.get("latitude"));
loc.setLongitude((Double) data.get("longitude"));
loc.setAccuracy(Float.parseFloat(data.get("accuracy").toString()));
loc.setTime( System.currentTimeMillis());//AppUtil.getUTCTime());
} catch (JSONException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
大家注意看这行holder.put("radio_type",
cellID.get(0).radioType);
GSM就用"gsm",CDMA就用"cdma"
这个千万别搞混了,不然就获取不到信息了
值得一提的是C网获取基站再定位那偏差不是一般的大,是恨大,将近1千米了,大概是C网基站较少的缘故吧
最后通过经纬度获取地理位置信息,代码如下:
public&static&&String&getAddress(Location&itude)&throws&Exception&{
&&&&&&&&String&resultString&=&"";
&&&&&&&&&&
&&&&&&&&String&urlString&=&String.format("/maps/geo?key=abcdefg&q=%s,%s",&itude.getLatitude(),&itude.getLongitude());
&&&&&&&&Log.i("URL",&urlString);
&&&&&&&&&&
&&&&&&&&HttpClient&client&=&new&DefaultHttpClient();
&&&&&&&&&&
&&&&&&&&HttpGet&get&=&new&HttpGet(urlString);
&&&&&&&&try&{
&&&&&&&&&&&&&&
&&&&&&&&&&&&HttpResponse&response&=&client.execute(get);
&&&&&&&&&&&&HttpEntity&entity&=&response.getEntity();
&&&&&&&&&&&&BufferedReader&buffReader&=&new&BufferedReader(new&InputStreamReader(entity.getContent()));
&&&&&&&&&&&&StringBuffer&strBuff&=&new&StringBuffer();
&&&&&&&&&&&&String&result&=&null;
&&&&&&&&&&&&while&((result&=&buffReader.readLine())&!=&null)&{
&&&&&&&&&&&&&&&&strBuff.append(result);
&&&&&&&&&&&&}
&&&&&&&&&&&&resultString&=&strBuff.toString();
&&&&&&&&&&&&Log.e("resultAdress---&",&resultString);
&&&&&&&&&&&&
&&&&&&&&&&&&&&
&&&&&&&&&&&&if&(resultString&!=&null&&&&resultString.length()&&&0)&{
&&&&&&&&&&&&&&&&JSONObject&jsonobject&=&new&JSONObject(resultString);
&&&&&&&&&&&&&&&&JSONArray&jsonArray&=&new&JSONArray(jsonobject.get("Placemark").toString());
&&&&&&&&&&&&&&&&resultString&=&"";
&&&&&&&&&&&&&&&&for&(int&i&=&0;&i&&&jsonArray.length();&i++)&{
&&&&&&&&&&&&&&&&&&&&resultString&=&jsonArray.getJSONObject(i).getString("address");
&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&}
&&&&&&&&}&catch&(Exception&e)&{
&&&&&&&&&&&&throw&new&Exception("获取物理位置出现错误:"&+&e.getMessage());
&&&&&&&&}&finally&{
&&&&&&&&&&&&get.abort();
&&&&&&&&&&&&client&=&null;
&&&&&&&&return&resultS
public static
String getAddress(Location itude) throws Exception {
String resultString = "";
String urlString = String.format("/maps/geo?key=abcdefg&q=%s,%s", itude.getLatitude(), itude.getLongitude());
Log.i("URL", urlString);
HttpClient client = new DefaultHttpClient();
HttpGet get = new HttpGet(urlString);
HttpResponse response = client.execute(get);
HttpEntity entity = response.getEntity();
BufferedReader buffReader = new BufferedReader(new InputStreamReader(entity.getContent()));
StringBuffer strBuff = new StringBuffer();
String result =
while ((result = buffReader.readLine()) != null) {
strBuff.append(result);
resultString = strBuff.toString();
Log.e("resultAdress---&", resultString);
if (resultString != null && resultString.length() & 0) {
JSONObject jsonobject = new JSONObject(resultString);
JSONArray jsonArray = new JSONArray(jsonobject.get("Placemark").toString());
resultString = "";
for (int i = 0; i & jsonArray.length(); i++) {
resultString = jsonArray.getJSONObject(i).getString("address");
} catch (Exception e) {
throw new Exception("获取物理位置出现错误:" + e.getMessage());
} finally {
get.abort();
return resultS
在获取地理位置的这个location事实上应该传入纠偏后的location,本文暂不做此处理,所以得到的地理信息位置是偶偏差的,大家注意
最后附上截图:
<img ALT="" src="/blog7style/images/common/sg_trans.gif" real_src ="http://img.my.csdn.net/uploads//_6566.JPG"
TITLE="android&GSM+CDMA基站定位" />
工程下载链接:
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 2g 3g 4g基站设备区别 的文章

 

随机推荐