Android系统服务:LocationManager

2024-01-28 21:18

本文主要是介绍Android系统服务:LocationManager,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

系统定位

需要权限:

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

获取LocationManager

LocationManager lm = (LocationManager) getSystemService(LOCATION_SERVICE);

设置参数和监听

lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 3000, 100, listener);
 * 第一个参数:定位类型* 第二个参数:定位时间间隔* 第三个参数:定位距离间隔* 第四个参数:监听

当第3个参数不为0时,以第3个参数为依据;当第三个参数为0,已第2个参数为依据。

定位类型:(6.0上测试失败,没有获取到坐标,即使把targetSdkVersion改成22,;5..1上测试成功。)

LocationManager.GPS_PROVIDER
LocationManager.NETWORK_PROVIDER
LocationManager.PASSIVE_PROVIDER
LocationListener listener = new LocationListener() {@Overridepublic void onLocationChanged(Location location) {//获取到坐标LogUtil.d("onLocationChanged" + location.getProvider() + "," + location.getLongitude() + "," + location.getLatitude() + ","+ location.getTime() + "," + location.getAltitude());}@Overridepublic void onStatusChanged(String provider, int status, Bundle extras) {//GPS状态变化时触发LogUtil.d("onStatusChanged," + provider + "," + status);}@Overridepublic void onProviderEnabled(String provider) {//GPS开启时触发LogUtil.d("onProviderEnabled," + provider);}@Overridepublic void onProviderDisabled(String provider) {//GPS关闭时触发LogUtil.d("onProviderDisabled," + provider);}
};

AndroidUtilCodeLocationUtils

是否打开了GPS:

LocationUtils.isGpsEnabled()
LocationUtils.register(0, 0, new LocationUtils.OnLocationChangeListener() {@Overridepublic void getLastKnownLocation(Location location) {LogUtil.d("getLastKnownLocation," + location.getLatitude() + "," + location.getLongitude());}@Overridepublic void onLocationChanged(Location location) {LogUtil.d("onLocationChanged," + location.getLatitude() + "," + location.getLongitude());}@Overridepublic void onStatusChanged(String provider, int status, Bundle extras) {LogUtil.d("provider=" + provider + ",status=" + status);}
});LocationUtils.unregister();

其它

demo: http://git.oschina.net/AndroidSystemService/locationmanager01
android 的三种定位方式

这篇关于Android系统服务:LocationManager的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/654800

相关文章

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

TP-Link PDDNS服将于务6月30日正式停运:用户需转向第三方DDNS服务

《TP-LinkPDDNS服将于务6月30日正式停运:用户需转向第三方DDNS服务》近期,路由器制造巨头普联(TP-Link)在用户群体中引发了一系列重要变动,上个月,公司发出了一则通知,明确要求所... 路由器厂商普联(TP-Link)上个月发布公告要求所有用户必须完成实名认证后才能继续使用普联提供的 D

Android里面的Service种类以及启动方式

《Android里面的Service种类以及启动方式》Android中的Service分为前台服务和后台服务,前台服务需要亮身份牌并显示通知,后台服务则有启动方式选择,包括startService和b... 目录一句话总结:一、Service 的两种类型:1. 前台服务(必须亮身份牌)2. 后台服务(偷偷干

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创

CentOS系统Maven安装教程分享

《CentOS系统Maven安装教程分享》本文介绍了如何在CentOS系统中安装Maven,并提供了一个简单的实际应用案例,安装Maven需要先安装Java和设置环境变量,Maven可以自动管理项目的... 目录准备工作下载并安装Maven常见问题及解决方法实际应用案例总结Maven是一个流行的项目管理工具

微服务架构之使用RabbitMQ进行异步处理方式

《微服务架构之使用RabbitMQ进行异步处理方式》本文介绍了RabbitMQ的基本概念、异步调用处理逻辑、RabbitMQ的基本使用方法以及在SpringBoot项目中使用RabbitMQ解决高并发... 目录一.什么是RabbitMQ?二.异步调用处理逻辑:三.RabbitMQ的基本使用1.安装2.架构

Android kotlin语言实现删除文件的解决方案

《Androidkotlin语言实现删除文件的解决方案》:本文主要介绍Androidkotlin语言实现删除文件的解决方案,在项目开发过程中,尤其是需要跨平台协作的项目,那么删除用户指定的文件的... 目录一、前言二、适用环境三、模板内容1.权限申请2.Activity中的模板一、前言在项目开发过程中,尤

Java中使用Java Mail实现邮件服务功能示例

《Java中使用JavaMail实现邮件服务功能示例》:本文主要介绍Java中使用JavaMail实现邮件服务功能的相关资料,文章还提供了一个发送邮件的示例代码,包括创建参数类、邮件类和执行结... 目录前言一、历史背景二编程、pom依赖三、API说明(一)Session (会话)(二)Message编程客

C#实现系统信息监控与获取功能

《C#实现系统信息监控与获取功能》在C#开发的众多应用场景中,获取系统信息以及监控用户操作有着广泛的用途,比如在系统性能优化工具中,需要实时读取CPU、GPU资源信息,本文将详细介绍如何使用C#来实现... 目录前言一、C# 监控键盘1. 原理与实现思路2. 代码实现二、读取 CPU、GPU 资源信息1.

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬