width : 130, align : 'center' }, { field : 'caozuo', title : '操作', width : 130, align : 'center', formatter : function(value, rec, index) { var editId = rec.id; // alert(editId); return returnOption = "细节 ; ; ; ; ;"+"修改"+" ; ; ; ; ;删除"; // return up; } } ] ], pagination : true }); }); 4.2 实现GPS定位 当用户打开软件时,程序自动进行GPS定位,然后根据用户所在的经纬度,获取用户所在的城市名。 第一步,获取经纬度,关键代码如下。 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main_old); // 开始执行获取location对象 initLocation(MainActivityOld.this); } @Override protected void onStart() { // TODO Auto-generated method stub super.onStart(); this.cityName = XML.getCityName(latitude, longitude); } Location location; LocationManager lm; LocationListener locationListener; // 通过network获取location private String networkProvider = LocationManager.NETWORK_PROVIDER; // 通过gps获取location private String GpsProvider = LocationManager.GPS_PROVIDER; // 获取location对象 private void initLocation(Context mContext) { // 获得系统及服务的 LocationManager 对象 lm = (LocationManager) mContext .getSystemService(Context.LOCATION_SERVICE); // 首先检测 通过network或是gps获得 location 对象 // 如果获得了location对象 则更新tv if (startLocation(networkProvider, mContext)) { updateLocation(location, mContext); } else if (startLocation(GpsProvider, mContext)) { updateLocation(location, mContext); } else { // 如果上面两种方法都不能获得location对象 则显示下列信息 Toast.makeText(this, "没有打开GPS设备", 5000).show(); } } 第二步,通过经纬度,获取城市名,关键代码如下。 public static String getCityName(double latitude, double longitude) { String cityName = null; Document doc = null; try { // 解析文件 doc = parse(latitude, longitude); // 取得根节点 Element root = doc.getDocumentElement(); // 取得子节点列表 NodeList gsrs = root.getChildNodes(); Node results = gsrs.item(3);// result节点 NodeList result = results.getChildNodes();// result子节点 Node addressComponent = result.item(7);// addressComponent节点 NodeList addressComponents = addressComponent.getChildNodes();// addressComponent子节点 Node city = addressComponents.item(7);// city节点 // System.out.println(city.getTextContent());// city节点值 cityName = city.getTextContent(); } catch (SAXException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } return cityName; } 4.3 服务器端与手机端的数据连接 本机采用JSON进行数据传递。 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式。同时,JSON是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON数据不须要任何特殊的 API 或工具包。 5总结 通过反复测试,系统的各个模块运行状态良好没有出现什么大的逻辑问题。能够正常的运行。系统的功能模块相对比较完善,操作界面比较简单,容易操作,容易被人所使用,真正投入应用后,会给外出人员带来极大的方便。 【参考文献】 [1] 张利国, 代闻,龚海平. Android移动开发案例详解[M].北京:人民邮电出版社,2010. [2] 张利国, 龚海平,王植萌. Android移动开发入门与进阶[M].北京:人民邮电出版社,2009. [3] 张利国, 代闻, 龚海平. Android移动开发案例详解.北京:人民邮电出版社,2010. [4] 韩超, 梁泉. Android系统原理及开发要点详解[M].北京:电子工业出版社,2010. [5] 余志龙. Google Android SDK开发范例大全[M].北京:人民邮电出版社,2009. [6] 黄晓韩. JSP环境下的SQL注入防范[J].网络与信息,2010(8):56. [7] 夏红星. SQL Server数据传输协议分析[J].计算机与网络,2010(14):53-55. [8] 赵根朝. 基于测试流程的软件测试设计[J].计算机与网络,2010(14):45-48. [9] 公磊, 周聪. 基于Android的移动终端应用程序开发与研究[J].计算机与现代化,2008(8). |