`
20386053
  • 浏览: 461990 次
文章分类
社区版块
存档分类
最新评论

通过SIM卡获取GPS,android基站定位原理

 
阅读更多
TelephonyManager telManager=(TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
		GsmCellLocation glc=(GsmCellLocation) telManager.getCellLocation();
		int cid=glc.getCid();///gsm cell id, -1 if unknown, 0xffff max legal value 基站ID号
		int lac=glc.getLac();//写入区域代码
		String strOperator=telManager.getNetworkOperator();
		
		int mcc=Integer.valueOf(strOperator.substring(0, 3));//写入当前城市代码
		int mnc=Integer.valueOf(strOperator.substring(3, 5));//写入网络代码
		String getNumber="";
		getNumber+=("cid:"+cid+"\n");
		getNumber+=("cid:"+lac+"\n");
		getNumber+=("cid:"+mcc+"\n");
		getNumber+=("cid:"+mnc+"\n");
		
		try {
			JSONObject jObject=new JSONObject();
			jObject.put("version", "1.1.0");
			jObject.put("host", "maps.google.com");
			jObject.put("request_address", true);
			if(mcc==460)
				jObject.put("address_language","zh_CN");
			else
				jObject.put("address_language", "en_US");
			
			JSONArray jArray=new JSONArray();
			JSONObject jData=new JSONObject();
			jData.put("cell_id", cid);
			jData.put("location_area_code", lac);
			jData.put("mobile_country_code", mcc);
			jData.put("mobile_network_code", mnc);//
			jArray.put(jData);
			jObject.put("cell_towers",jArray);
			DefaultHttpClient client=new DefaultHttpClient();
			HttpPost post=new HttpPost("http://www.google.com/loc/json");
			StringEntity se=new StringEntity(jObject.toString());
			post.setEntity(se);
			
			HttpResponse resp=client.execute(post);
			BufferedReader br=null;
			if(resp.getStatusLine().getStatusCode()==HttpStatus.SC_OK){
				br=new BufferedReader(new InputStreamReader(resp.getEntity().getContent()));
				StringBuffer sb=new StringBuffer();
				
				String result=br.readLine();
				while(result!=null)
				{
					sb.append(getNumber);
					sb.append(result);
					result=br.readLine();
				}
				
				String s=sb.toString();
				s=s.substring(s.indexOf("{"));
				btn.setText(s);
				JSONObject jo=new JSONObject(s);
				
				String values="";
				JSONObject arr= jo.getJSONObject("location");
				String lat= arr.get("latitude").toString();
				String lon=arr.getString("longitude").toString();
				
				
				Toast.makeText(getApplicationContext(), "经度:"+lon+" 纬度:"+lat,1).show();
				
			}
		} catch (JSONException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (UnsupportedEncodingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (ClientProtocolException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
最后还要加入网络访问权限
 <uses-permission android:name="android.permission.INTERNET"></uses-permission>
 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>

分享到:
评论

相关推荐

    android 基于基站,apn,gps,wifi,network 根据不同手机sim卡获取经纬度

    标题提到的“基于基站,APN,GPS,WiFi,Network 根据不同手机SIM卡获取经纬度”涉及了多种定位技术,每种都有其特性和应用场景。下面将详细介绍这些技术以及如何在Android中实现。 首先,我们来了解几种主要的定位...

    android基站定位源码

    标题与描述概述的知识点主要集中在Android基站定位的实现方法与源代码细节上,涉及的关键技术包括Google Android API中的TelephonyManager使用、不同运营商(联通、移动、电信)基站定位的代码差异、通过基站信息...

    android定位之基站定位

    #### 二、基站定位原理 基站定位依赖于移动通信网络中的基站信息。每个基站都有一个唯一的ID,并且覆盖一定的地理区域。当手机开机并接入移动网络时,它会自动与信号最强的基站建立连接。通过查询基站的ID信息,...

    Android基站定位原理及实现代码

    Android基站定位原理主要依赖于手机中的TelephonyManager和CellLocation两个类。TelephonyManager类能够提供有关设备的电话服务状态的信息,包括当前的网络类型、电话号码、SIM卡状态等。而CellLocation类则提供有关...

    SIM基站信息获取

    在这个场景下,我们关注的是如何通过编程方式来获取SIM卡所连接的基站信息。基站是移动通信网络的关键组成部分,它们负责向移动设备提供无线信号覆盖,使得用户能够进行语音通话、发送短信以及接入互联网。 首先,...

    浅析Android手机卫士手机定位的原理

    浅析Android手机卫士sim卡绑定 深入浅析Android手机卫士保存密码时进行md5加密 详解Android 手机卫士设置向导页面 浅析Android手机卫士关闭自动更新 浅析Android手机卫士自定义控件的属性 浅析Android手机卫士读取...

    flex4原生扩展应用(Android)

    5. SIM卡信息识别:访问SIM卡信息需要权限控制,一般在AndroidManifest.xml中声明权限后,通过原生代码获取SIM卡的IMSI(国际移动用户识别码)、ICCID(集成电路卡识别码)等信息。这些信息在特定场景下,如设备注册...

    RIL_lib.rar_android_c builder android

    - 位置信息:获取和报告设备的位置信息,如GPS和基站定位。 2. **C语言编程**: Android的RIL实现通常使用C语言,因为基带处理器的通信协议栈多为低级协议,适合使用C这样的系统级语言。C语言的高效性和底层控制...

    基于Android平台的手机防盗与定位系统的研究与设计.pdf

    3. **定位服务**:系统利用内置的GPS(全球定位系统)模块获取手机的地理位置信息,同时可以结合网络定位(如Wi-Fi和移动网络基站)提高定位精度。 4. **数据保护**:系统能够锁定手机,防止他人访问个人数据,并...

    毕设&课程作业_基于Android的智能防盗追踪系统,包括定位,追踪,拍照等功能.zip

    GPS可以提供精确的地理位置信息,而网络定位则通过Wi-Fi和移动网络基站数据进行辅助定位,以在室内或GPS信号弱的区域也能提供一定程度的位置信息。 3. **实时追踪** 实时追踪功能是通过持续获取设备位置信息并发送...

    360儿童卫士3s使用说明书.pdf

    360儿童卫士3s以手腕佩戴的形式,利用GPS芯片、WiFi、基站和重力传感器等多种定位技术,实现高精度的定位功能。室内定位精度可达20米,室外则精确至5米。此外,产品配备OLED健康护眼屏,降低对孩子视力的影响。内置...

    短消息开发,vc源程序,可以用于手机定位

    在手机定位方面,这通常涉及到GPS(全球定位系统)数据的获取,但也可以利用移动网络的基站信息进行三角定位,尤其是在GPS信号不可用的情况下。 短消息开发涉及到以下关键技术点: 1. **SMS协议**:开发者需要了解...

    GetGsmInfo.rar_WINDOWS_

    在Android系统中,获取GSM信息通常涉及使用TelephonyManager类,这是Android SDK提供的一个接口,允许开发者访问电话相关的功能和状态,包括SIM卡信息、网络类型以及附近的基站信息。具体来说,可以调用`...

    4G业务考试题库_(1).pdf

    14. A-GPS技术:也称为基站定位技术,能通过移动通信运营基站快速定位。 15. TD-LTE的优势:高速率、低时延和永远在线。 16. TD-LTE关键技术:包括TD双工技术、OFDM多址接入技术、MIMO多天线技术和扁平化网络结构...

    手机参数诊断

    gps定位,APN设置,当前电量,获取手机中心号码,呼叫转移,内存容量及占用率,移动数据开关,wifi开关,基站位置,限信号发射功率及噪音干扰比,信号接受强度,mac地址,BSSID,手机软件列表,CGI,手机MSISDN,...

    电信设备-手机遗失信息的跟踪系统及跟踪方法.zip

    1. **手机定位技术**:系统可能利用GPS、基站信号或Wi-Fi热点等多重定位技术,结合网络服务提供商的数据,实时确定丢失手机的位置。这种技术通常需要手机保持开机状态并连接到网络。 2. **远程锁定与擦除功能**:当...

Global site tag (gtag.js) - Google Analytics