- 浏览: 221044 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
gya_xiner:
FTPClient不用判断文件夹是否存在,直接使用chdir( ...
利用FTPClient类实现文件的上传下载功能 -
qianzhiyong:
不错,刚好用到,谢谢!
java SSL https -
55757353:
很实用,感谢.
知识分享 -
JavaJ2me:
没能实现,求结果啊,我是在tabhost中跳Activity, ...
设置activity 跳转动画 -
liuxian13183:
能不能把详细的代码或者demo发一下,jackie.new@1 ...
DatePickerDialog 修改,只显示月日,隐藏年
集合了gps、wifi、基站定位。
其中GPS定位首先是GpsTask类异步返回GPS经纬度信息
IAddressTask封装了获取地理位置的方法,具体代码如下:
其中GPS定位首先是GpsTask类异步返回GPS经纬度信息
01.GpsTask gpstask = new GpsTask(GpsActivity.this,new GpsTaskCallBack() { @Override 02.public void gpsConnectedTimeOut() { 03.gps_tip.setText("获取GPS超时了"); 04.} 05.@Override 06.public void gpsConnected(GpsData gpsdata) { 07.do_gps(gpsdata); 08.} 09.}, 3000); 10.gpstask.execute();其中3000是设置获取gps数据timeout时间。GpsTask是根据
01.locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);获取最后一次GPS信息,如果返回为Null则是根据监听获取Location信息发生改变时返回的GPS信息。因为手机获取GPS信息时间比较长,所以这个类实际使用时可能还存在一些BUG。
IAddressTask封装了获取地理位置的方法,具体代码如下:
01.package com.maxtech.common.gps; 02. 03.import java.io.BufferedReader; 04.import java.io.InputStreamReader; 05.import org.apache.http.HttpEntity; 06.import org.apache.http.HttpResponse; 07.import org.json.JSONArray; 08.import org.json.JSONObject; 09.import android.app.Activity; 10.import android.content.Context; 11.import android.net.wifi.WifiManager; 12.import android.telephony.TelephonyManager; 13.import android.telephony.gsm.GsmCellLocation; 14. 15.public abstract class IAddressTask { 16. protected Activity context; 17. 18. public IAddressTask(Activity context) { 19. this.context = context; 20. } 21. 22. public abstract HttpResponse execute(JSONObject params) throws Exception; 23. 24. public MLocation doWifiPost() throws Exception { 25. return transResponse(execute(doWifi())); 26. } 27. 28. public MLocation doApnPost() throws Exception { 29. return transResponse(execute(doApn())); 30. } 31. 32. public MLocation doGpsPost(double lat, double lng) throws Exception { 33. return transResponse(execute(doGps(lat, lng))); 34. } 35. 36. private MLocation transResponse(HttpResponse response) { 37. MLocation location = null; 38. if (response.getStatusLine().getStatusCode() == 200) { 39. location = new MLocation(); 40. HttpEntity entity = response.getEntity(); 41. BufferedReader br; 42. try { 43. br = new BufferedReader(new InputStreamReader( 44. entity.getContent())); 45. StringBuffer sb = new StringBuffer(); 46. String result = br.readLine(); 47. while (result != null) { 48. sb.append(result); 49. result = br.readLine(); 50. } 51. JSONObject json = new JSONObject(sb.toString()); 52. JSONObject lca = json.getJSONObject("location"); 53. location.Access_token = json.getString("access_token"); 54. if (lca != null) { 55. if (lca.has("accuracy")) 56. location.Accuracy = lca.getString("accuracy"); 57. if (lca.has("longitude")) 58. location.Latitude = lca.getDouble("longitude"); 59. if (lca.has("latitude")) 60. location.Longitude = lca.getDouble("latitude"); 61. if (lca.has("address")) { 62. JSONObject address = lca.getJSONObject("address"); 63. if (address != null) { 64. if (address.has("region")) 65. location.Region = address.getString("region"); 66. if (address.has("street_number")) 67. location.Street_number = address 68. .getString("street_number"); 69. if (address.has("country_code")) 70. location.Country_code = address 71. .getString("country_code"); 72. if (address.has("street")) 73. location.Street = address.getString("street"); 74. if (address.has("city")) 75. location.City = address.getString("city"); 76. if (address.has("country")) 77. location.Country = address.getString("country"); 78. } 79. } 80. } 81. } catch (Exception e) { 82. e.printStackTrace(); 83. location = null; 84. } 85. } 86. return location; 87. } 88. 89. private JSONObject doGps(double lat, double lng) throws Exception { 90. JSONObject holder = new JSONObject(); 91. holder.put("version", "1.1.0"); 92. holder.put("host", "maps.google.com"); 93. holder.put("address_language", "zh_CN"); 94. holder.put("request_address", true); 95. JSONObject data = new JSONObject(); 96. data.put("latitude", lat); 97. data.put("longitude", lng); 98. holder.put("location", data); 99. return holder; 100. } 101. 102. private JSONObject doApn() throws Exception { 103. JSONObject holder = new JSONObject(); 104. holder.put("version", "1.1.0"); 105. holder.put("host", "maps.google.com"); 106. holder.put("address_language", "zh_CN"); 107. holder.put("request_address", true); 108. TelephonyManager tm = (TelephonyManager) context 109. .getSystemService(Context.TELEPHONY_SERVICE); 110. GsmCellLocation gcl = (GsmCellLocation) tm.getCellLocation(); 111. int cid = gcl.getCid(); 112. int lac = gcl.getLac(); 113. int mcc = Integer.valueOf(tm.getNetworkOperator().substring(0, 3)); 114. int mnc = Integer.valueOf(tm.getNetworkOperator().substring(3, 5)); 115. JSONArray array = new JSONArray(); 116. JSONObject data = new JSONObject(); 117. data.put("cell_id", cid); 118. data.put("location_area_code", lac); 119. data.put("mobile_country_code", mcc); 120. data.put("mobile_network_code", mnc); 121. array.put(data); 122. holder.put("cell_towers", array); 123. return holder; 124. } 125. 126. private JSONObject doWifi() throws Exception { JSONObject holder = new JSONObject(); holder.put("version", "1.1.0"); holder.put("host", "maps.google.com"); holder.put("address_language", "zh_CN"); holder.put("request_address", true); WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); if(wifiManager.getConnectionInfo().getBSSID() == null) { throw new RuntimeException("bssid is null"); } JSONArray array = new JSONArray(); JSONObject data = new JSONObject(); data.put("mac_address", wifiManager.getConnectionInfo().getBSSID()); data.put("signal_strength", 8); data.put("age", 0); array.put(data); holder.put("wifi_towers", array); return holder; } public static class MLocation { 127. public String Access_token; 128. public double Latitude; 129. public double Longitude; 130. public String Accuracy; 131. public String Region; 132. public String Street_number; 133. public String Country_code; 134. public String Street; 135. public String City; 136. public String Country; 137. 138. @Override 139. public String toString() { 140. StringBuffer buffer = new StringBuffer(); 141. buffer.append("Access_token:" + Access_token + "\n"); 142. buffer.append("Region:" + Region + "\n"); 143. buffer.append("Accuracy:" + Accuracy + "\n"); 144. buffer.append("Latitude:" + Latitude + "\n"); 145. buffer.append("Longitude:" + Longitude + "\n"); 146. buffer.append("Country_code:" + Country_code + "\n"); 147. buffer.append("Country:" + Country + "\n"); 148. buffer.append("City:" + City + "\n"); 149. buffer.append("Street:" + Street + "\n"); 150. buffer.append("Street_number:" + Street_number + "\n"); 151. return buffer.toString(); 152. } 153. } 154.}
01.package com.maxtech.common; 02. 03.import com.maxtech.common.gps.GpsTask; 04.import com.maxtech.common.gps.GpsTaskCallBack; 05.import com.maxtech.common.gps.GpsTask.GpsData; 06.import com.maxtech.common.gps.IAddressTask.MLocation; 07.import android.app.Activity; 08.import android.app.AlertDialog; 09.import android.app.ProgressDialog; 10.import android.os.AsyncTask; 11.import android.os.Bundle; 12.import android.util.Log; 13.import android.view.View; 14.import android.view.View.OnClickListener; 15.import android.widget.TextView; 16. 17.public class GpsActivity extends Activity implements OnClickListener { 18. private TextView gps_tip = null; 19. private AlertDialog dialog = null; 20. 21. @Override 22. public void onCreate(Bundle savedInstanceState) { 23. super.onCreate(savedInstanceState); 24. setContentView(R.layout.main); 25. gps_tip = (TextView) findViewById(R.id.gps_tip); 26. findViewById(R.id.do_gps).setOnClickListener(GpsActivity.this); 27. findViewById(R.id.do_apn).setOnClickListener(GpsActivity.this); 28. findViewById(R.id.do_wifi).setOnClickListener(GpsActivity.this); 29. dialog = new ProgressDialog(GpsActivity.this); 30. dialog.setTitle("请稍等..."); 31. dialog.setMessage("正在定位..."); 32. } 33. 34. @SuppressWarnings("unchecked") 35. @Override 36. public void onClick(View v) { 37. gps_tip.setText(""); 38. switch (v.getId()) { 39. case R.id.do_apn: 40. do_apn(); 41. break; 42. case R.id.do_gps: 43. GpsTask gpstask = new GpsTask(GpsActivity.this, 44. new GpsTaskCallBack() { 45. @Override 46. public void gpsConnectedTimeOut() { 47. gps_tip.setText("获取GPS超时了"); 48. } 49. 50. @Override 51. public void gpsConnected(GpsData gpsdata) { 52. do_gps(gpsdata); 53. } 54. }, 3000); 55. gpstask.execute(); 56. break; 57. case R.id.do_wifi: 58. do_wifi(); 59. break; 60. } 61. } 62. 63. private void do_apn() { 64. new AsyncTask<Void, Void, String>() { 65. @Override 66. protected String doInBackground(Void... params) { 67. MLocation location = null; 68. try { 69. location = new AddressTask(GpsActivity.this, 70. AddressTask.DO_APN).doApnPost(); 71. } catch (Exception e) { 72. e.printStackTrace(); 73. } 74. if (location == null) 75. return null; 76. return location.toString(); 77. } 78. 79. @Override 80. protected void onPreExecute() { 81. dialog.show(); 82. super.onPreExecute(); 83. } 84. 85. @Override 86. protected void onPostExecute(String result) { 87. if (result == null) { 88. gps_tip.setText("基站定位失败了..."); 89. } else { 90. gps_tip.setText(result); 91. } 92. dialog.dismiss(); 93. super.onPostExecute(result); 94. } 95. }.execute(); 96. } 97. 98. private void do_gps(final GpsData gpsdata) { 99. new AsyncTask<Void, Void, String>() { 100. @Override 101. protected String doInBackground(Void... params) { 102. MLocation location = null; 103. try { 104. Log.i("do_gpspost", "经纬度:" + gpsdata.getLatitude() + "----" 105. + gpsdata.getLongitude()); 106. location = new AddressTask(GpsActivity.this, 107. AddressTask.DO_GPS).doGpsPost( 108. gpsdata.getLatitude(), gpsdata.getLongitude()); 109. } catch (Exception e) { 110. e.printStackTrace(); 111. } 112. if (location == null) 113. return "GPS信息获取错误"; 114. return location.toString(); 115. } 116. 117. @Override 118. protected void onPreExecute() { 119. dialog.show(); 120. super.onPreExecute(); 121. } 122. 123. @Override 124. protected void onPostExecute(String result) { 125. gps_tip.setText(result); 126. dialog.dismiss(); 127. super.onPostExecute(result); 128. } 129. }.execute(); 130. } 131. 132. private void do_wifi() { 133. new AsyncTask<Void, Void, String>() { 134. @Override 135. protected String doInBackground(Void... params) { 136. MLocation location = null; 137. try { 138. location = new AddressTask(GpsActivity.this, 139. AddressTask.DO_WIFI).doWifiPost(); 140. } catch (Exception e) { 141. e.printStackTrace(); 142. } 143. if (location == null) 144. return null; 145. return location.toString(); 146. } 147. 148. @Override 149. protected void onPreExecute() { 150. dialog.show(); 151. super.onPreExecute(); 152. } 153. 154. @Override 155. protected void onPostExecute(String result) { 156. if (result != null) { 157. gps_tip.setText(result); 158. } else { 159. gps_tip.setText("WIFI定位失败了..."); 160. } 161. dialog.dismiss(); 162. super.onPostExecute(result); 163. } 164. }.execute(); 165. } 166.}
01.package com.maxtech.common; 02.import org.apache.http.HttpHost; 03.import org.apache.http.HttpResponse; 04.import org.apache.http.client.HttpClient; 05.import org.apache.http.client.methods.HttpPost; 06.import org.apache.http.conn.params.ConnRouteParams; 07.import org.apache.http.entity.StringEntity; 08.import org.apache.http.impl.client.DefaultHttpClient; 09.import org.apache.http.params.HttpConnectionParams; 10.import org.json.JSONObject; 11.import android.app.Activity; 12.import android.database.Cursor; 13.import android.net.Uri; 14.import com.maxtech.common.gps.IAddressTask; 15.public class AddressTask extends IAddressTask { 16. public static final int DO_APN = 0; 17. public static final int DO_WIFI = 1; 18. public static final int DO_GPS = 2; 19. private int postType = -1; 20. public AddressTask(Activity context, int postType) { 21. super(context); 22. this.postType = postType; 23. } 24. @Override 25. public HttpResponse execute(JSONObject params) throws Exception { 26. HttpClient httpClient = new DefaultHttpClient(); 27. HttpConnectionParams.setConnectionTimeout(httpClient.getParams(), 20 * 1000); 28. HttpConnectionParams.setSoTimeout(httpClient.getParams(), 20 * 1000); 29. HttpPost post = new HttpPost("http://74.125.71.147/loc/json"); // 设置代理 30. if (postType == DO_APN) { 31. Uri uri = Uri.parse("content://telephony/carriers/preferapn"); // 获取当前正在使用的APN接入点 32. Cursor mCursor = context.getContentResolver().query(uri, null,null, null, null); 33. if (mCursor != null) { 34. if(mCursor.moveToFirst()) { 35. String proxyStr = mCursor.getString(mCursor.getColumnIndex("proxy")); 36. if (proxyStr != null && proxyStr.trim().length() > 0) { 37. HttpHost proxy = new HttpHost(proxyStr, 80); 38. httpClient.getParams().setParameter( 39. ConnRouteParams.DEFAULT_PROXY, proxy); 40. } 41. } 42. } 43. } 44. StringEntity se = new StringEntity(params.toString()); 45. post.setEntity(se); 46. HttpResponse response = httpClient.execute(post); 47. return response; 48. } 49. } 50. } 51. } 52.}
相关推荐
定位的源码,包含基站,wifi,gps。
androidGPS及WIFI基站定位坐标源码.zip
Android应用源码之androidGPS及WIFI基站定位坐标源码_androidGPS
安卓Android源码——androidGPS及WIFI基站定位坐标源码.zip
GPS及WIFI基站定位坐标源码制作的一个示例程序,涉及安卓代码中GPS的使用,以及如何通过网络发送数据。
androidGPS及WIFI基站定位坐标源码
GPS及WIFI基站定位坐标源码
androidGPS及WIFI基站定位坐标源码.zip源码资源下载androidGPS及WIFI基站定位坐标源码.zip源码资源下载
androidGPS及WIFI基站定位坐标源码.7z
Android应用源码之androidGPS及WIFI基站定位坐标源码.zip
安卓Andriod源码——GPS及WIFI基站定位坐标源码.zip
androidGPS及WIFI基站定位坐标源码.zip项目安卓应用源码下载androidGPS及WIFI基站定位坐标源码.zip项目安卓应用源码下载 1.适合学生毕业设计研究参考 2.适合个人学习研究参考 3.适合公司开发项目技术参考
android google 定位程序 wifi基站GPS定位 等综合定位代码,
安卓Android源码——androidGPS及WIFI基站定位坐标源码.rar
安卓开发-androidGPS及WIFI基站定位坐标源码.zip
安卓Android源码——GPS及WIFI基站定位坐标源码.zip
Android studio 请使用真机调试,测试地点,最好在室外,基站定位好像不会实时定位,GPS可以2秒刷新一次,前提是可以接收到GPS信号
Android高级应用源码-androidGPS及WIFI基站定位坐标源码.zip
android GPS和基站定位程序及源码.rar 实现基站定位,以及WIFI定位,以及GPS定位,参考使用。