Android获取基站坐标代码
Android获取基站坐标代码:
- package com.su.station;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import org.apache.http.HttpEntity;
- import org.apache.http.HttpResponse;
- 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.location.Location;
- import android.location.LocationManager;
- import android.os.Bundle;
- import android.telephony.TelephonyManager;
- import android.telephony.gsm.GsmCellLocation;
- import android.util.Log;
- import android.widget.Toast;
- public class TestStationLocationActivity extends Activity {
- private static final String TAG = "TestStationLocationActivity";
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- Location location = getportLocation();
- location.getLongitude();
- Toast.makeText(this, location.getLatitude()+location.getLatitude()+"", 100).show();
- }
- private Location getportLocation() {
- Location loc = null ;
- TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
- BufferedReader br = null;
- try
- {
- GsmCellLocation gcl = (GsmCellLocation) tm.getCellLocation();
- if (null == gcl)
- {
- return null;
- }
- int cid = gcl.getCid();
- int lac = gcl.getLac();
- int mcc = Integer.valueOf(tm.getNetworkOperator().substring(0,3));
- int mnc = Integer.valueOf(tm.getNetworkOperator().substring(3,5));
- JSONObject holder = new JSONObject();
- holder.put("version", "1.1.0");
- holder.put("host", "maps.google.com");
- holder.put("request_address", true);
- JSONArray array = new JSONArray();
- JSONObject data = new JSONObject();
- data.put("cell_id", cid);
- data.put("location_area_code", lac);
- data.put("mobile_country_code", mcc);
- data.put("mobile_network_code", mnc);
- array.put(data);
- holder.put("cell_towers", array);
- DefaultHttpClient client = new DefaultHttpClient();
- HttpPost post = new HttpPost("http://www.google.com/loc/json");
- StringEntity se = new StringEntity(holder.toString());
- post.setEntity(se);
- HttpResponse resp = client.execute(post);
- if (resp.getStatusLine().getStatusCode() == 200)
- {
- HttpEntity entity = resp.getEntity();
- br = new BufferedReader(new InputStreamReader(entity.getContent()));
- StringBuffer sb = new StringBuffer();
- String result = br.readLine();
- while (result != null)
- {
- sb.append(result);
- result = br.readLine();
- }
- JSONObject data_ = new JSONObject(sb.toString());
- data_ = (JSONObject) data_.get("location");
- loc = new Location(LocationManager.NETWORK_PROVIDER);
- loc.setLatitude((Double) data_.get("latitude"));
- loc.setLongitude((Double) data_.get("longitude"));
- Log.i(TAG, "latitude : " + loc.getLatitude() + " longitude : " + loc.getLongitude());
- return loc;
- }
- return null;
- }
- catch (Exception e)
- {
- android.util.Log.e(TAG, "network get the latitude and longitude ocurr Exception error", e);
- }
- finally
- {
- if (null != br)
- {
- try
- {
- br.close();
- }
- catch (IOException e)
- {
- android.util.Log.e(TAG, "network get the latitude and longitude when closed BufferedReader ocurr IOException error", e);
- }
- }
- }
- return loc;
- }
- }