Activity:
package com.van.gps; import android.app.Activity; import android.app.AlertDialog; import android.app.AlertDialog.Builder; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.location.Criteria; import android.location.Location; import android.location.LocationManager; import android.os.Bundle; import android.provider.Settings; import android.widget.TextView; public class GPSTestActivity extends Activity { private TextView textView;//显示文本框 private LocationManager locationManager;//位置管理 private GPSLocationListener locationListener;//位置监听器 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); textView = (TextView) this.findViewById(R.id.textView_location); locationListener=new GPSLocationListener(textView); //首先打开GPS,查找位置。 openGPSSettings(); } /** * 设置GPS。 */ private void openGPSSettings() { locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE); if (locationManager.isProviderEnabled(android.location.LocationManager.GPS_PROVIDER)) { getLocation(); return; } //提示用户打开GPS AlertDialog.Builder builder = new Builder(GPSTestActivity.this); builder.setMessage("必须要开启GPS才能使用此程序,开启?"); builder.setTitle("提示"); builder.setPositiveButton("确认", new android.content.DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS); startActivityForResult(intent,0); //此为设置完成后返回到获取界面 } }); builder.setNegativeButton("退出", new android.content.DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); GPSTestActivity.this.finish(); } }); builder.create().show(); } /** * 获取地理位置。 */ private void getLocation(){ // 查找到服务信息 Criteria criteria = new Criteria(); criteria.setAccuracy(Criteria.ACCURACY_FINE); // 高精度 criteria.setAltitudeRequired(false); criteria.setBearingRequired(false); criteria.setCostAllowed(true); criteria.setPowerRequirement(Criteria.POWER_LOW); // 低功耗 /** * ANDROID中有两种获取位置的方式,LocationManager.NETWORK_PROVIDER和LocationManager.GPS_PROVIDER; * 前者用于移动网络中获取位置,精度较低但速度很快, 后者使用GPS进行定位,精度很高但一般需要10-60秒时 * 间才能开始第1次定位,如果是在 室内则基本上无法定位。 * 此方法使用Criteria得到最佳的方式 */ String provider = locationManager.getBestProvider(criteria, true); // 获取GPS信息 Location location = locationManager.getLastKnownLocation(provider); // 通过GPS获取位置 locationListener.updateLocation(location);//调用方法,更新位置信息 // 设置监听器,1秒监听一次 locationManager.requestLocationUpdates(provider, 1000, 0 ,locationListener); }
GPSLocationListener:
package com.van.gps; import android.location.Location; import android.location.LocationListener; import android.os.Bundle; import android.widget.TextView; public class GPSLocationListener implements LocationListener{ //显示文本 private TextView textView; /** * 构造. * @param textView */ public GPSLocationListener(TextView textView){ this.textView=textView; } @Override public void onLocationChanged(Location location) { updateLocation(location); } @Override public void onProviderDisabled(String provider) { // TODO Auto-generated method stub } @Override public void onProviderEnabled(String provider) { // TODO Auto-generated method stub } @Override public void onStatusChanged(String provider, int status, Bundle extras) { // TODO Auto-generated method stub } /** * 更新位置显示. * @param location */ public void updateLocation(Location location) { if (location != null) { double latitude = location.getLatitude(); double longitude= location.getLongitude(); textView.setText("维度:" + latitude+ "\n经度:" + longitude); } else { textView.setText("无法获取地理信息"); } } }
效果如下:
相关推荐
Android程序员入门教程(中文版) 第一章:什么是Android 第二章:下载和安装Eclipse总则 第三章:下载和安装Android SDK ...第九章:使用手机的GPS功能 第十章:使用Google API的Gtalk 第十一章:应用程序:找一个朋友
xamarin android中使用gps定位获取经纬度,入门的简单介绍:http://blog.csdn.net/kebi007/article/details/74936979
11.3 Android模拟器支持的GPS定位文件 11.3.1 KML 11.3.2 NMEA 11.4 应用实例详解:确定当前 位置的GPS程序 11.4.1 实例分析 11.4.2 实例实现 11.5 基于Google Map的应用 11.5.1 使用MapView显示地图 11.5.2 使用...
第1章 Android入门 1 1 关于Android的非技术问题 1 1 1 为什么看好 Android 1 1 2 以前是否从事过Android的工作 做过哪些工作 1 1 3 你做的最复杂的界面是什么 1 1 4 如何解决Android学习中遇到的难题 1 1 5 Android...
第一讲:Android开发环境...第二十六讲:Android中的GPS应用入门 第二十七讲:Handler使用入门 第二十八讲:Android多媒体(Media)入门 第二十九讲:WebView学习指南 第三十讲:URLConnection和HttpClient使用入门
Beta版的 Android SDK 提供了在Android平台上使用JaVa语言进行Android应用开发必须的工具和API接口。 特性 应用程序框架 支持组件的重用与替换 Dalvik 虚拟机 专为移动设备优化 集成的浏览器 基于开源的WebKit ...
本书的内容全部基于Android SDK1.5版本,详尽介绍当今流行的五大手机应用:RSS阅读器、基于Google MAP的个人GPS定位、豆瓣网客户端、在线音乐播放器、手机信息查看助手。 了解Google智能手机的朋友都会知道...
从技术实现上,讲解了5个Android平台下的完整综合实例及源代码分析,分别是RSS阅读器、基于Google Map的个人GPS、豆瓣网(Web 2.0)客户端、在线音乐播放器、手机信息助手。, 本书注重对实际动手能力的指导,在遵循...
从技术实现上,讲解了5个android平台下的完整综合实例及源代码分析,分别是rss阅读器、基于google map的个人gps、豆瓣网(web 2.0)客户端、在线音乐播放器、手机信息查看助手。本书注重对实际动手能力的指导,在遵循...
第九章 使用手机的GPS功能 第十章 使用Google API的Gtalk 使用Google API的GTalk 在Android中执行GTalk 编译并运行GoogleAPI 试试这个:为GoogleAPI活动增加设置特性 第十一章 应用程序:找一个朋友 145 ...
android下的定位和照相功能,还有个自定义的标题栏,高手勿喷 新人入门,需要大家多鼓励贡献些分数,谢谢!
本书将引领大家开发引人入胜的android 2.x应用,包括如何设计gui、如何使用gps和访问web服务,以及如何将理念转换成实际应用! 本书包含大量即时可用的简单示例,自此之后,构建实际、流行的应用将不再困难,只要你...
简单易懂~亲验。如果是刚刚入门android的话,想试试看android定位的人可以下载来参考看看~(这算入门篇吧,适合入门~)
本书内容上覆盖了用Android开发的大部分...从技术实现上,讲解了5个Android平台下的完整综合实例及源代码分析,分别是RSS阅读器、基于Google Map的个人GPS、豆瓣网(Web 2.0)客户端、在线音乐播放器、手机信息助手。
如果想理解Android WiFi NFC Gps 方面 framework开发,这一本是很好的入门。
中文版Android程序员入门 目 录 I 关于本博客的主题 IV 第一章 什么是Android 1 什么是Android - 嵌入式设备编程的历史-第一章(1) 1 开放手机联盟和Android-(2) 2 介绍Android 第一章(3) 3 Android示例 - 第四...
这三篇博客文章提供了有关使用该工具以及使用Android地理定位功能的更多信息:Eclipse入门单击以获取有关Eclipse或ADT捆绑包入门的指导。屏幕截图主视图: 卫星数据视图: 设置视图:特征地图网络和GPS位置。 在...
本书将引领大家开发引人入胜的android 2.x应用,包括如何设计gui、如何使用gps和访问web服务,以及如何将理念转换成实际应用! 本书包含大量即时可用的简单示例,自此之后,构建实际、流行的应用将不再困难,只要你...
从技术实现上,讲解了5个Android平台下的完整综合实例及源代码分析,分别是RSS阅读器、基于Google Map的个人GPS、豆瓣网(Web 2.0)客户端、在线音乐播放器、手机信息查看助手。《Android开发入门与实战》注重对实际...
Camera、地图、GPS、传感器、录音、WiFi设备等,OpenGL ES的应用,着色和3D图形的绘制和纹理贴图,Android NDK和Android网络编程,Android进程间通信机制Binder原理等,通过一个完整项目的开发,帮助读者把所学的...