Android 开发笔记六 定位
1. LocationManager (位置信息管理者):
1 // 得到 LocationManager 定位管理者 3 LocationManager locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
2. 需要创建一个 实现 LocationListener 接口的类,用来监听位置的变化,及位置提拱者状态变化等事件
1 // 定义 LocationListener 位置改变监听器 2 private class MyLoactionListener implements LocationListener { 3 4 @Override 5 public void onLocationChanged(Location location) { 6 // 输出 位置的 经度值 7 System.out.println(location.getLongitude()); 8 // 输出位置的伟度值 9 System.out.println(location.getLatitude()); 10 } 11 12 @Override 13 public void onProviderDisabled(String provider) { 14 // TODO Auto-generated method stub 15 16 } 17 18 @Override 19 public void onProviderEnabled(String provider) { 20 // TODO Auto-generated method stub 21 22 } 23 24 @Override 25 public void onStatusChanged(String provider, int status, Bundle extras) { 26 // TODO Auto-generated method stub 27 28 } 29 30 }
3.设置 LocationManager 的 提拱者及 绑定位置变化监听器
1 // 设置Location服务提拱者,及LocationListener , 第二个参数为,最短的更新时间(毫秒),第三个是,最小的更新距离(米), 当然这两个参数越小越精确,但也同样最费电.要按照你的程序的实际处理的问题,来定义 2 locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 10000, 20, new MyLoactionListener());
你还可以这样,来得到当前设备,所有的Location Provider
1 // 输出得有的 Loaction 提拱者的名字 一般都是 gps ,network,... 2 List<String> providers = locationManager.getAllProviders(); 3 4 // 输出系统中所有的 Location Provider 的名字 5 for(Iterator<String> iterator = providers.iterator();iterator.hasNext();) { 6 System.out.println(iterator.next()); 7 }