Android GPS学习

      因项目中要用到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);//主动获取Location
SimpleDateFormat 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";










  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值