Android 基站分CdmaCellLocation和GsmCellLocation,要根据不同的SIM卡转成不同的对象
TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
int type = tm.getNetworkType();//获取网络类型
//在中国,移动的2G是EGDE,联通的2G为GPRS,电信的2G为CDMA,电信的3G为EVDO
Location loc = null;
ArrayList CellID = new ArrayList();
//中国电信为CTC
//NETWORK_TYPE_EVDO_A是中国电信3G的getNetworkType
//NETWORK_TYPE_CDMA电信2G是CDMA
if (type == TelephonyManager.NETWORK_TYPE_EVDO_A || type == TelephonyManager.NETWORK_TYPE_CDMA || type ==TelephonyManager.NETWORK_TYPE_1xRTT)
{
location = (CdmaCellLocation) tm.getCellLocation();
if(location == null)
throw new Exception("errr");
String operator = tm.getNetworkOperator();
int cellIDs = location.getBaseStationId();
int networkID = location.getNetworkId();
StringBuilder sb = new StringBuilder();
sb.append(location.getSystemId());
int mnc = Integer.parseInt(nsb.toString());
int mcc = Integer.parseInt(operator.substring(0,3));
}
//移动2G卡 + CMCC + 2
//type = NETWORK_TYPE_EDGE
//联通的2G经过测试 China Unicom 1 NETWORK_TYPE_GPRS
else if(type == TelephonyManager.NETWORK_TYPE_EDGE || type == TelephonyManager.NETWORK_TYPE_GPRS)
{
GsmCellLocation location = (GsmCellLocation)tm.getCellLocation();
location = (CdmaCellLocation) tm.getCellLocation();
if(location == null)
throw new Exception("errr");
String operator = tm.getNetworkOperator();
int mcc = Integer.parseInt(operator.substring(0,3));
int mnc = Integer.parseInt(operator.substring(3));
int cid = location.getCid();
int lac = location.getLac();
}
分享到:
相关推荐
获取基站信息 Android Android 中获取基站信息需要使用两个类:TelephonyManager 和 GsmCellLocation。TelephonyManager 是 Android 中的一个系统服务,提供了对电话通讯服务的访问。它不能直接实例化,需要通过 ...
MCC,Mobile Country Code,移动国家代码(中国的为460); MNC,Mobile Network Code,移动网络号码(中国移动为0,中国联通为...CID,Cell Identity,基站编号; BSSS,Base station signal strength,基站信号强度。
google推荐获取基站信息软件 附件为android 版 network info II
在Android平台上,获取设备位置信息是一项关键功能,通常可以通过GPS(全球定位系统)和基站定位两种方式实现。本文将深入探讨这两种方法,并结合提供的源码分析其工作原理和实现细节。 1. GPS定位: GPS定位是...
2. **基站定位(Cell ID)**:基于手机连接的移动网络基站信息来确定位置。它依赖于运营商的基站数据,适用于城市环境,但精度较低,通常在几百米到几千米之间。Android的`LocationManager`服务和`NetworkLocation...
在编程中获取这些信息,通常需要使用特殊的库或API,比如Android系统的TelephonyManager类,它可以提供基站信息。开发者需要权限访问这些敏感数据,通常需要在AndroidManifest.xml中声明ACCESS_FINE_LOCATION权限。 ...
开发者可以调用`requestLocationUpdates()`方法,指定`GsmCellLocation`或`CdmaCellLocation`作为位置源,来获取基站信息。同时,`Location`对象则包含了位置的具体数据,如经度、纬度等。 三、基站定位的精度与...
开发者可以使用LocationManager的requestSingleUpdate()或requestLocationUpdates()方法来获取基站信息,并结合NetworkProvider来处理基站数据。此外,Location类提供了获取经纬度、时间和精度等定位信息的方法。 ...
5. **基站定位**:Android系统内部集成了CellInfo类来处理基站信息,开发者可以通过LocationManager获取CellInfo,然后进行位置计算。基站定位通常需要处理多个小区的信息,通过三角定位或多边形算法估算设备位置。 ...
为了获取基站信息,首先需要获取`TelephonyManager`实例,然后调用其提供的方法获取当前手机所在的基站信息。具体步骤如下: ```java // 获取TelephonyManager实例 TelephonyManager mTManager = (TelephonyManager)...
系统设计中,前端通过Android应用程序接口(API)获取基站的信号强度、频段等关键信息,并结合GPS数据进行基站位置的估算。这些信息随后被发送到后端服务器,进行集中存储和处理。后端服务器可能包括数据清洗、数据...
在Android平台上,百度基站定位是一种常见的地理定位方法,它结合了网络信号和GPS信号来获取设备的位置信息。本文将深入探讨这一技术,并基于提供的资源,包括相关jar包和示例项目,来阐述如何在Android应用中集成并...
在Android平台上,3G基站定位是一种利用移动网络中的基站信息来确定设备位置的技术。相比于GPS,它在室内或城市峡谷等GPS信号弱的地方仍能提供定位服务。本项目提供了完整的源码实例,经过多次测试,确保了其稳定性...
实现Android的WiFi和基站地理信息定位,需要理解定位原理,正确配置权限,使用`LocationManager`和`LocationListener`进行位置更新监听,结合`WifiManager`获取WiFi信息,以及可能借助外部API获取基站信息。...
在Android中,我们同样通过LocationManager来获取基站定位: ```java locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 2000, 0, locationListener); ``` 这里将提供者改为`...
5. 解析基站信息:Android系统并不直接提供基站信息,但可以通过`Location`对象的`getExtra()`方法获取。通常需要第三方库如`android.telephony.gsm`来处理这些信息。 需要注意的是,基站定位的精度通常低于GPS,...
需要注意的是,由于涉及用户隐私和安全问题,直接获取基站信息可能会受到限制。在实际应用中,通常需要遵循相关法律法规和运营商政策,合法合规地获取和使用这些数据。同时,对于个人用户,可以通过使用地图应用或...
总的来说,这些资源涵盖了Android定位服务的核心技术,包括如何获取和解析GPS数据,如何利用WiFi热点进行定位,以及如何通过基站信息进行粗略定位。对于Android开发者来说,理解并掌握这些技术对于构建地理定位相关...