android 基站定位

时间:2023-12-16 09:20:08
    1. package cn.LocationStation;
    2. import java.io.BufferedReader;
    3. import java.io.InputStream;
    4. import java.io.InputStreamReader;
    5. import java.net.URL;
    6. import java.util.Date;
    7. import org.apache.http.HttpEntity;
    8. import org.apache.http.HttpResponse;
    9. import org.apache.http.client.methods.HttpPost;
    10. import org.apache.http.entity.StringEntity;
    11. import org.apache.http.impl.client.DefaultHttpClient;
    12. import org.json.JSONArray;
    13. import org.json.JSONObject;
    14. import android.app.Activity;
    15. import android.content.Context;
    16. import android.os.Bundle;
    17. import android.telephony.TelephonyManager;
    18. import android.telephony.gsm.GsmCellLocation;
    19. import android.view.View;
    20. import android.widget.Button;
    21. import android.widget.TextView;
    22. public class LocationStation extends Activity {
    23. TextView mTextView;
    24. Button mButton;
    25. TelephonyManager tm;
    26. /** Called when the activity is first created. */
    27. @Override
    28. public void onCreate(Bundle savedInstanceState) {
    29. super.onCreate(savedInstanceState);
    30. setContentView(R.layout.main);
    31. mTextView = (TextView) findViewById(R.id.textView001);
    32. mButton = (Button) findViewById(R.id.Button001);
    33. tm = (TelephonyManager) this
    34. .getSystemService(Context.TELEPHONY_SERVICE);
    35. mButton.setOnClickListener(new Button.OnClickListener() {
    36. @Override
    37. public void onClick(View v) {
    38. // TODO Auto-generated method stub
    39. GsmCellLocation gcl = (GsmCellLocation) tm.getCellLocation();
    40. int cid = gcl.getCid();
    41. int lac = gcl.getLac();
    42. int mcc = Integer.valueOf(tm.getNetworkOperator().substring(0,
    43. 3));
    44. int mnc = Integer.valueOf(tm.getNetworkOperator().substring(3,
    45. 5));
    46. try {
    47. // 组装JSON查询字符串
    48. JSONObject holder = new JSONObject();
    49. holder.put("version", "1.1.0");
    50. holder.put("host", "maps.google.com");
    51. // holder.put("address_language", "zh_CN");
    52. holder.put("request_address", true);
    53. JSONArray array = new JSONArray();
    54. JSONObject data = new JSONObject();
    55. data.put("cell_id", cid); // 25070
    56. data.put("location_area_code", lac);// 4474
    57. data.put("mobile_country_code", mcc);// 460
    58. data.put("mobile_network_code", mnc);// 0
    59. array.put(data);
    60. holder.put("cell_towers", array);
    61. // 创建连接,发送请求并接受回应
    62. DefaultHttpClient client = new DefaultHttpClient();
    63. HttpPost post = new HttpPost(
    64. "http://www.google.com/loc/json");
    65. StringEntity se = new StringEntity(holder.toString());
    66. post.setEntity(se);
    67. HttpResponse resp = client.execute(post);
    68. HttpEntity entity = resp.getEntity();
    69. BufferedReader br = new BufferedReader(
    70. new InputStreamReader(entity.getContent()));
    71. StringBuffer sb = new StringBuffer();
    72. String result = br.readLine();
    73. while (result != null) {
    74. sb.append(result);
    75. result = br.readLine();
    76. }
    77. JSONObject jsonObject = new JSONObject(sb.toString());
    78. JSONObject jsonObject1 = new JSONObject(jsonObject
    79. .getString("location"));
    80. getAddress(jsonObject1.getString("latitude"), jsonObject1
    81. .getString("longitude"));
    82. //mTextView.setText(sb.toString());
    83. } catch (Exception e) {
    84. // TODO: handle exception
    85. }
    86. }
    87. });
    88. }
    89. void getAddress(String lat, String lag) {
    90. try {
    91. URL url = new URL("http://maps.google.cn/maps/geo?key=abcdefg&q="
    92. + lat + "," + lag);
    93. InputStream inputStream = url.openConnection().getInputStream();
    94. InputStreamReader inputReader = new InputStreamReader(inputStream,
    95. "utf-8");
    96. BufferedReader bufReader = new BufferedReader(inputReader);
    97. String line = "", lines = "";
    98. while ((line = bufReader.readLine()) != null) {
    99. lines += line;
    100. }
    101. if (!lines.equals("")) {
    102. JSONObject jsonobject = new JSONObject(lines);
    103. JSONArray jsonArray = new JSONArray(jsonobject.get("Placemark")
    104. .toString());
    105. for (int i = 0; i < jsonArray.length(); i++) {
    106. mTextView.setText(mTextView.getText() + "\n"
    107. + jsonArray.getJSONObject(i).getString("address"));
    108. }
    109. }
    110. } catch (Exception e) {
    111. ;
    112. }
    113. }
    114. }