因项目中要用到GPS定位,学习了下,便把学习成果记录下来。

在清单文件中添加权限:

    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>    <uses-permission android:name="android.permission.INTERNET"></uses-permission>    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>


用到的几个对象,LocationManager、LocationListener、Location.

*LocationManager 位置管理器,想要操作定位相关设备,必须先创建一个一个LocationManager对象。


LocationManger locationManager=(LocationManager)this.getSystemService(Context.LOCATION_SERVICE);

* LocationListener 位置监听者,监听位置变化,监听设备开关与状态。主要用来获取location, 在内部类实现:

   class myListen implements LocationListener    {        @Override        public void onLocationChanged(Location location) {            //位置发生变化            Log.i(TAG, "onLocationChanged.......");            if (mHandler != null)            {                Message msg = mHandler.obtainMessage(REFRESH_LOCATION, location);                msg.sendToTarget();            }        }        @Override        public void onProviderDisabled(String provider) {            //        }        @Override        public void onProviderEnabled(String provider) {                    }        @Override        public void onStatusChanged(String provider, int status, Bundle extras) {            //        }            }




绑定监听:
            myListenGPS = new myListen();                        locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,                    CHECK_POSITION_INTERVAL, 0, myListenGPS);


requestLocationUpdates(String provider, long minTime, float minDistance, LocationListener listener)中的4个参数:

String provider:设备提供者,LocationManager.GPS_PROVIDER和LocationManager.NETWORK_PROVIDER
long minTime: 位置信息更新周期,毫秒为单位;

float minDistance:位置变化最小距离:当位置距离变化超过此值时,将更新位置信息

LocationListener listener:监听者



* Location 位置信息,通过Location可以获取时间、经纬度、海拔等位置信息。

Location location=locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);//主动获取LocationSimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");                Date date = new Date(location.getTime());                                String message = "时间:" + dateFormat.format(date) + "\n"                        +"经度:" + location.getLongitude() + "\n"                        + "纬度:" + location.getLatitude() + "\n";










更多相关文章

  1. 切换tab的时候recyclerview滑动到最底部
  2. android系统存储信息的获取
  3. Android(安卓)SDK Manager无法更新问题解决办法
  4. Android(安卓)MediaScanner源代码解析
  5. USB audio on Android(安卓)platform
  6. Android中广告条轮播(Banner)的实现
  7. Android(安卓)Logcat日志优化
  8. Android(安卓)短信发送
  9. Android集成百度地图-----显示地图、定位、长按显示地址信息

随机推荐

  1. Android界面布局的几种常用方式
  2. 【Android每周专题】横竖屏切换和Activit
  3. Android(安卓)conversion to dalvik form
  4. 疯狂Android讲义
  5. Android中用TextView显示大量文字的方法
  6. 智能机能少了播放器么?Android(安卓)多媒
  7. Android进程与内存及内存泄露
  8. Android中Canvas绘图之MaskFilter图文详
  9. Android(安卓)实现书籍翻页效果----原理
  10. Android开发——Android的消息机制详解