Copy Code code as follows:
Import Java.io.BufferedReader;
Import Java.io.InputStreamReader;
Import Org.apache.http.HttpResponse;
Import Org.apache.http.HttpStatus;
Import Org.apache.http.client.methods.HttpPost;
Import org.apache.http.entity.StringEntity;
Import org.apache.http.impl.client.DefaultHttpClient;
Import Org.json.JSONArray;
Import Org.json.JSONObject;
Import android.app.Activity;
Import Android.content.Context;
Import Android.os.Bundle;
Import Android.os.Handler;
Import Android.os.Message;
Import Android.telephony.TelephonyManager;
Import android.telephony.gsm.GsmCellLocation;
Import Android.view.View;
Import Android.view.View.OnClickListener;
Import Android.widget.Button;
Import Android.widget.LinearLayout;
Import Android.widget.TextView;
public class Test extends activity {
Context Context=this;
LinearLayout Mainview=null;
Button Button=null;
TextView Tv=null;
public void OnCreate (Bundle savedinstancestate) {
Super.oncreate (savedinstancestate);
This.settitle ("Base station + networking +google database positioning");
Mainview=new LinearLayout (this);
Mainview.setorientation (linearlayout.vertical);
Button=new Button (this);
Button.settext ("positioning test");
Button.setonclicklistener (New Onclicklistener () {
@Override
public void OnClick (View v) {
(New Httpthread (context)). Start ();
}
});
Mainview.addview (button,new linearlayout.layoutparams ( -2,-2));
Tv=new TextView (this);
Tv.settext ("hello! \ n ");
Mainview.addview (TV);
Setcontentview (Mainview);
}
Class Httpthread extends thread{
Telephonymanager Tm=null;
Gsmcelllocation Gcl=null;
int cid=0;
int lac=0;
int MCC = 0;
int MNC = 0;
StringBuffer Sb=null;
Handler handler=new Handler () {
public void Handlemessage (msg) {
Switch (msg.what) {
Case 1:
Tv.append (Sb.tostring ());
Break
}
Super.handlemessage (msg);
}
};
Httpthread (Context context) {
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=new StringBuffer ();
Sb.append ("CID:" +cid + "\ n");
Sb.append ("Lac:" +lac + "\ n");
Sb.append ("MCC:" +MCC + "\ n");
Sb.append ("MNC:" +MNC + "\ n");
}
public void Run () {
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) {
Sb.append ("Networking success \ n");
br = new BufferedReader (New InputStreamReader (Resp.getentity (). GetContent ()));
}else{
Sb.append ("Networking Access data failure!\n");
}
String result = Br.readline ();
while (result!= null) {
Sb.append (result);
result = Br.readline ();
}
}catch (Exception ex) {
Sb.append (Ex.getmessage ());
}
Message msg=new message ();
Msg.what=1;
Handler.sendmessage (msg);
}
}
}
The required Permissions
Copy Code code as follows:
<uses-permission android:name= "Android.permission.INTERNET" ></uses-permission>
< uses-permission android:name= "Android.permission.ACCESS_COARSE_LOCATION" ></uses-permission>