cdmaLocation与gsmlocation的区别 lbs定位

        本文,是根据自己在开始lbs定位时,出现的

TelephonyManager mTelNet = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);

GsmCellLocation location = (GsmCellLocation) mTelNet.getCellLocation();。

报错,第二句说是对象转换失败。

的问题所写。

文档参考网络。

  首先。对于lbs的定位,主要是先获取本地gps所在的基站的id。等一些信息包括地区编号。等等。

然后提交到google上,google会根据这些信息返回所在地详细的信息。因为只需要能联网就可以定位。可以补缺gps定位慢。和不能在室定位的弊端。

对于google返回的信息是以json的格式。

可以通过getString的方式获取。

  



其中,radio_type通过TelephonyManager.getNetworkType()获取;signal_strength在PhoneStateListener的回调方法onSignalStrengthChanged中可以得到,mobile_country_code:取telephonyManager.getSimOperator()的前3位数字。剩下的cell_id、location_area_code和mobile_network_code根据网络类型不同而不同:


GSM


cell_id: gsmCellLocation.getCid()


location_area_code:gsmCellLocation.getLac()


mobile_network_code:telephonyManager.getSimOperator()第4位以后的数字


CDMA


cell_id 用 BID值替换 cdmaCellLocation.getBaseStationId()


location_area_code 用NID值替换 cdmaCellLocation.getNetworkId()


mobile_network_code用SID值替换 cdmaCellLocation.getSystemId()


WIFI数据可以通过ScanResult获取:


mac_address: scanResult.BSSID


signal_strength: scanResult.level


ssid: scanResult.SSID


通过Android平台上的相关接口获取到这些数据之后可以用JSONString组织JSON串:




过getString的方法获取。
其中,radio_type通过TelephonyManager.getNetworkType()获取;signal_strength在PhoneStateListener的回调方法onSignalStrengthChanged中可以得到,mobile_country_code:取telephonyManager.getSimOperator()的前3位数字。剩下的cell_id、location_area_code和mobile_network_code根据网络类型不同而不同:


GSM


cell_id: gsmCellLocation.getCid()


location_area_code:gsmCellLocation.getLac()


mobile_network_code:telephonyManager.getSimOperator()第4位以后的数字


CDMA


cell_id 用 BID值替换 cdmaCellLocation.getBaseStationId()


location_area_code 用NID值替换 cdmaCellLocation.getNetworkId()


mobile_network_code用SID值替换 cdmaCellLocation.getSystemId()


WIFI数据可以通过ScanResult获取:


mac_address: scanResult.BSSID


signal_strength: scanResult.level


ssid: scanResult.SSID


通过Android平台上的相关接口获取到这些数据之后可以用JSONString组织JSON串:

你可能感兴趣的:(android之恋)