Android APP - GPS定位并获取地理位置

本文介绍了如何在Android中使用LocationManager进行GPS定位,详细解析了LocationManager的提供者类型,以及requestLocationUpdates方法的参数。同时讲解了如何通过LocationListener获取位置更新,并利用Geocoder转换经纬度为地理位置信息。文章还提供了一个实例,展示了如何在APP启动时获取并显示定位信息,以及用户自定义经纬度查询地理位置的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 相关知识简介

    通过LocationManagerService可以获取位置,这个service的aidl文件在frameworks/base/location/java/android/location/里,从LocationManager.java可以看到应该如何调用它。在定位的时候需要指定采用哪种provider,常用有三种:

      LocationManager.GPS_PROVIDER                   精确定位,精度在十几米内

      LocationManager.NETWORK_PROVIDER         粗略定位,精度在上百米

      LocationManager.PASSIVE_PROVIDER           悄悄定位,也就是不启动定位,但是当别的应用使用gps/network定到位了就会把location告诉给它

    要使用LocationManagerService,首先需要获取到LocationManager,然后通过这个LocationManager执行启动定位、关闭定位等操作。

        import android.location.LocationManager;

        private LocationManager mLocationManager;

        mLocationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);

    接下来看下通过LocationManager启动定位的方法:

        public void requestLocationUpdates(String provider, long minTime, float minDistance, LocationListener listener)

        public void requestLocationUpdates(String provider, long minTime, float minDistance, PendingIntent intent)

        public void requestLocationUpdates(long minTime, float minDistance, Criteria criteria, PendingIntent intent)

        minTime - 最小时间,单位毫秒,

        如果本次得到的location离上次的location时间间隔小于minTime,那么LocationManagerService就不会把这个location报告给我们

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值