android gps 定位
来源:互联网 发布:国家题库软件 编辑:程序博客网 时间:2024/05/16 07:24
客户需要跟踪运单信息,决定采用gps和 基站定位。经过几天的折腾,已粗见成效,以下为示例代码:
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); // 创建LocationManager对象provider = locationManager.getBestProvider(getCriteria(), true); // 设置查询条件,返回定位方式,默认为GPS定位//设置监听locationListener = new LocationListener() { @Override public void onStatusChanged(String provider, int status, Bundle extras) { // TODO Auto-generated method stub } @Override public void onProviderEnabled(String provider) { // TODO Auto-generated method stub Location l = locationManager.getLastKnownLocation(provider); // 获取位置信息 updateView(l); // 更新EditText控件的内容 } @Override public void onProviderDisabled(String provider) { updateView(null); } @Override public void onLocationChanged(Location location) { // TODO Auto-generated method stub updateView(location); } };btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub progressDialog = new ProgressDialog(DemoActivity.this); progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); progressDialog.setMessage("定位中!"); progressDialog.show(); new Thread() { @Override public void run() { getLocation(); }; }.start(); } });private void getLocation() { // 获取位置管理服务 try { location = locationManager.getLastKnownLocation(provider); // 通过GPS获取位置 address = gps.updateToNewLocation(location); handler.sendEmptyMessage(2); } catch (Exception e) { // TODO Auto-generated catch block address = e.getMessage(); handler.sendEmptyMessage(3); } }private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { switch (msg.what) { case 0: // 登录加载 break; case 1: break; case 2: progressDialog.dismiss(); updateView(location); default: break; } }; };
需要注意的地方:
1、重写onStart,检测GPS是否开启
View Code
1 @Override 2 protected void onStart() { 3 // TODO Auto-generated method stub 4 super.onStart(); 5 6 Boolean a = locationManager 7 .isProviderEnabled(LocationManager.GPS_PROVIDER); 8 9 if (!a) {10 Intent intent = new Intent();11 intent.setAction(Settings.ACTION_LOCATION_SOURCE_SETTINGS);12 intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);13 14 try {15 startActivity(intent);16 17 } catch (ActivityNotFoundException ex) {18 19 // The Android SDK doc says that the location settings20 // activity21 // may not be found. In that case show the general settings.22 23 // General settings activity24 intent.setAction(Settings.ACTION_SETTINGS);25 try {26 startActivity(intent);27 } catch (Exception e) {28 }29 }30 }31 32 }
2、重写onResume,设置监听
View Code
1 @Override2 protected void onResume() {3 // TODO Auto-generated method stub4 super.onResume();5 6 locationManager.requestLocationUpdates(provider, 1000, 0,7 locationListener);// 此处实际用network方式定位8 9 }
2、重写onPause,注销监听
View Code
1 @Override2 protected void onPause() {3 // TODO Auto-generated method stub4 super.onPause();5 6 if (locationManager != null) {7 locationManager.removeUpdates(locationListener);8 }9 }
<script type="text/javascript"><!--google_ad_client = "ca-pub-1944176156128447";/* cnblogs 首页横幅 */google_ad_slot = "5419468456";google_ad_width = 728;google_ad_height = 90;//--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
- Android GPS定位实现
- android GPS定位
- android GPS定位系统
- android模拟器定位GPS
- 利用GPS定位[android]
- android 获取GPS定位,
- Android:GPS卫星定位
- android gps 定位服务
- Android Gps 定位注意事项
- Android GPS 定位 1
- Android GPS定位
- Android GPS定位系统
- android gps 定位
- android 手机 GPS定位
- Android-GPS定位
- android gps定位
- Android的GPS定位
- android GPS实时定位
- RTP协议分析
- C/C++获取当前系统时间
- 我是个程序猿
- TCP的定时器
- 我,一个非典型程序员
- android gps 定位
- Linux下使用goagent
- [使用资源] 简单获取drawable下规律性命名的图片资源
- 时间类,静态成员
- 用Excel制作甘特图并管理项目
- 有关0x67a9
- 扩展欧几里德 之 五指山 nefu 84
- Ubuntu 防火墙配置
- HUD 1978——How many ways