目前程序在移动3G网络中不能定位。不知道各位遇到过这个问题没?
  if ((String) getNetType(pContext) != "UNKNOWN"&& ((String) getNetType(pContext) == "HSDPA" || getNetType ( pContext) == "HSPA")) {// 移动3G
location = null;
GsmCellLocation gcl = (GsmCellLocation) tm.getCellLocation();
if (gcl == null) {
return null;
}这时候gcl总是为空的。各位有什么解决办法没?求高手指点哈 

解决方案 »

  1.   

    移动3G的制式是TD-SCDMA的,你用GSM的方式获取肯定不行啊。现在ANDROID对GSM和WCDMA支持很好。CDMA和CDMA2000,API中说这种网络制式不保证获取基站参数正确。移动的TD-SCDMA则没有API支持。楼主可以常识直接用系统的Location API,然后设置NETWORK方式。
      

  2.   

    二楼前面说的是对的。。
    但是用Location API的NETWORK方式我一直没成功定位过,不知道为何,GPS方式的话只能在室外定位。
    楼主的基站定位的话CDMA是会返回空的,文档里写了。。
    谁能解释下NETWORK方式的定位,为何照着资料写在真机上就没成功定位过。?
      

  3.   

    各位说的方式,我都试过了。只是这个移动3G 走的网络,在android中确实没有支持。这个我也比较头疼。也是行业面临的一个问题。比如“大众点评、Google地图"也有类似的问题。但是百度还是能搞定的。尤其是国产手机被阉割的都不支持了。领导非啊让我搞定啊
      

  4.   

    用wifi定位 全部wifi设备都可以   还有顺便一提  百度地图3G定位好像不管电信联通都没问题
      

  5.   

    楼上的:“我们不可能让用户只能用Wifi啊。”百度的定位不知道怎么搞的,可以这么强大。我到现在都不能解决这个问题。
      

  6.   

    楼主 你的联通3g基站定位能实现吗?我现在在联通3g定位出问题了,就是wcdma这个模式下,请问你在这个模式下是怎么解决的?else if (type == TelephonyManager.NETWORK_TYPE_GPRS) {
    GsmCellLocation location = (GsmCellLocation) tm.getCellLocation();
    int cellIDs = location.getCid();
    int lac = location.getLac();
    CellIDInfo info = new CellIDInfo();
    info.cellId = cellIDs;
    info.locationAreaCode = lac;
    // 经过测试,获取联通数据以下两行必须去掉,否则会出现错误,错误类型为JSON Parsing Error
    // info.mobileNetworkCode = tm.getNetworkOperator().substring(3, 5);
    // info.mobileCountryCode = tm.getNetworkOperator().substring(0, 3);
    info.radioType = "gsm";
    CellID.add(info);
    }这个是我联通2g的处理方法