(原文主要方法转载于百度文库:http://wenku.baidu.com/view/2220dde8172ded630b1cb6ee.html)
-
importjava.io.BufferedReader;
-
importjava.io.InputStreamReader;
-
importorg.apache.http.HttpResponse;
-
importorg.apache.http.HttpStatus;
-
importorg.apache.http.client.methods.HttpPost;
-
importorg.apache.http.entity.StringEntity;
-
importorg.apache.http.impl.client.DefaultHttpClient;
-
importorg.json.JSONArray;
-
importorg.json.JSONObject;
-
-
importandroid.app.Activity;
-
importandroid.content.Context;
-
importandroid.os.Bundle;
-
importandroid.os.Handler;
-
importandroid.os.Message;
-
importandroid.telephony.TelephonyManager;
-
importandroid.telephony.gsm.GsmCellLocation;
-
importandroid.view.View;
-
importandroid.view.View.OnClickListener;
-
importandroid.widget.Button;
-
importandroid.widget.LinearLayout;
-
importandroid.widget.TextView;
-
-
publicclassTestextendsActivity{
-
-
Contextcontext=this;
-
LinearLayoutmainView=null;
-
Buttonbutton=null;
-
TextViewtv=null;
-
-
publicvoidonCreate(BundlesavedInstanceState){
-
super.onCreate(savedInstanceState);
-
this.setTitle("基站+联网+google数据库定位");
-
mainView=newLinearLayout(this);
-
mainView.setOrientation(LinearLayout.VERTICAL);
-
button=newButton(this);
-
button.setText("定位测试");
-
button.setOnClickListener(newOnClickListener(){
-
@Override
-
publicvoidonClick(Viewv){
-
(newHttpThread(context)).start();
-
}
-
});
-
mainView.addView(button,newLinearLayout.LayoutParams(-2,-2));
-
tv=newTextView(this);
-
tv.setText("Hello!\n");
-
mainView.addView(tv);
-
setContentView(mainView);
-
}
-
-
classHttpThreadextendsThread{
-
-
TelephonyManagertm=null;
-
GsmCellLocationgcl=null;
-
intcid=0;
-
intlac=0;
-
intmcc=0;
-
intmnc=0;
-
StringBuffersb=null;
-
-
Handlerhandler=newHandler(){
-
publicvoidhandleMessage(Messagemsg){
-
switch(msg.what){
-
case1:
-
tv.append(sb.toString());
-
break;
-
}
-
super.handleMessage(msg);
-
}
-
};
-
-
HttpThread(Contextcontext){
-
tm=(TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
-
gcl=(GsmCellLocation)tm.getCellLocation();
-
cid=gcl.getCid();
-
lac=gcl.getLac();
-
mcc=Integer.valueOf(tm.getNetworkOperator().substring(0,3));
-
mnc=Integer.valueOf(tm.getNetworkOperator().substring(3,5));
-
-
sb=newStringBuffer();
-
sb.append("cid:"+cid+"\n");
-
sb.append("lac:"+lac+"\n");
-
sb.append("mcc:"+mcc+"\n");
-
sb.append("mnc:"+mnc+"\n");
-
}
-
-
publicvoidrun(){
-
try{
-
JSONObjectjObject=newJSONObject();
-
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");
-
}
-
JSONArrayjArray=newJSONArray();
-
JSONObjectjData=newJSONObject();
-
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);
-
-
DefaultHttpClientclient=newDefaultHttpClient();
-
HttpPostpost=newHttpPost("http://www.google.com/loc/json");
-
StringEntityse=newStringEntity(jObject.toString());
-
post.setEntity(se);
-
HttpResponseresp=client.execute(post);
-
BufferedReaderbr=null;
-
if(resp.getStatusLine().getStatusCode()==HttpStatus.SC_OK){
-
sb.append("联网成功\n");
-
br=newBufferedReader(newInputStreamReader(resp.getEntity().getContent()));
-
}else{
-
sb.append("联网获取数据失败!\n");
-
}
-
-
Stringresult=br.readLine();
-
while(result!=null){
-
sb.append(result);
-
result=br.readLine();
-
}
-
}catch(Exceptionex){
-
sb.append(ex.getMessage());
-
}
-
Messagemsg=newMessage();
-
msg.what=1;
-
handler.sendMessage(msg);
-
}
-
}
-
}
所需权限
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
分享到:
相关推荐
全国基站lbs定位库包含全国移动联通电信全网lbs位置数据,94万条
android基站定位
移动基站联通基站全国基站数据库(基站查询)
Android 基站定位例子
android 基站定位程序 目前仅支持联通、移动通信商
手机基站定向基站数据库,手机基站定向基站数据库,手机基站定向基站数据库,手机基站定向基站数据库
android定位之基站定位,获取不到GPS信号定位时解决定位
这是android实现基站定位的实现步骤及源代码。
本DEMO 是基于百度地图定位sdk 写的 基站定位 demo 可以返回 当前位置的具体地址 和 经纬度
基站定位基站定位基站定位基站定位基站定位基站定位基站定位基站定位基站定位基站定位基站定位基站定位基站定位基站定位基站定位基站定位基站定位基站定位基站定位基站定位基站定位基站定位基站定位基站定位基站定位
最新全国基站lbs定位库包含全国移动联通电信全网lbs位置数据
全国基站lbs定位库包含全国移动联通电信全网lbs位置数据,84万条 有需要可以交互更换所有资源 学生党不容易,如果觉得好的话就给个好评
Android 基站定位源码.zip
android google 定位程序 wifi基站GPS定位 等综合定位代码,
android基站手动查询定位系统,手动输入lac和cell,依靠强大的基站数据库,显示中文地址及在google地图上显示位置
收录了全球范围内的基站信息,可通过 mcc,mnc,lac,cellid 信息获取基站定位,用于实现基于基站的定位能力。 (说明:收录的国内基站数目前还不太全)
Android studio 请使用真机调试,测试地点,最好在室外,基站定位好像不会实时定位,GPS可以2秒刷新一次,前提是可以接收到GPS信号
创新组合皮基站+直放站, 实现 4G 网络低成本快速部署.pdf