文档章节

Android中如何监听GPS开启和关闭

c
 chenming
发布于 2014/04/24 18:35
字数 200
阅读 5352
收藏 14

有时需要监听GPS的开关(这种需求并不多见)。实现的思路是监听代表 GPS 开关的 URI 的数据是否有发生变化

GPS的开关是系统设置,android.provider.Settings.Secure 代表了app可以读取但不能修改的系统设置。可以从这个类中获取到代表GPS开关的URI。

关键代码如下

	getContentResolver()
			.registerContentObserver(
					Settings.Secure
							.getUriFor(Settings.System.LOCATION_PROVIDERS_ALLOWED),
					false, mGpsMonitor);

完整的代码如下:

public class MyActivity extends Activity {

	private final ContentObserver mGpsMonitor = new ContentObserver(null) {
		@Override
		public void onChange(boolean selfChange) {
			super.onChange(selfChange);

			boolean enabled = mLocationManager
					.isProviderEnabled(LocationManager.GPS_PROVIDER);
			System.out.println("gps enabled? " + enabled);
		}
	};

	private LocationManager mLocationManager;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		mLocationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
	}

	protected void onStart() {
		getContentResolver()
				.registerContentObserver(
						Settings.Secure
								.getUriFor(Settings.System.LOCATION_PROVIDERS_ALLOWED),
						false, mGpsMonitor);
	};

	@Override
	protected void onStop() {
		super.onStop();
		getContentResolver().unregisterContentObserver(mGpsMonitor);
	}
}

© 著作权归作者所有

共有 人打赏支持
c
粉丝 2
博文 59
码字总数 24719
作品 0
南宁
Android之GPS定位详解

一、LocationManager LocationMangager,位置管理器。要想操作定位相关设备,必须先定义个LocationManager。我们可以通过如下代码创建LocationManger对象。 LocationManger locationManager...

程序袁_绪龙
2014/09/28
0
0
Android 实现定位及地理位置解析

昨儿折腾了一天,把Android 手机定位、获取手机当前位置的功能给搞掂了。这次记下来,不然又忘~~ 思路很简单,第一步,获取经纬度,第二步,把经纬度转换为地址。看起来简单,但是实现起来比...

慕广陵
2012/12/06
0
6
实战分享,教你蓝牙在小程序中的应用

欢迎大家前往腾讯云技术社区,获取更多腾讯海量技术实践干货哦~ 作者:朱胜 导语 蓝牙在日常生活中广泛使用的一项技术,小程序给了我们前端工程师一个控制蓝牙的方法,带上你的设备,来看看怎...

腾讯云加社区
2017/10/23
0
0
说说在 Android 如何实现基于位置的服务(基于百度 API)

基于位置的服务简称 LBS(Location Based Service),它是利用无线电通讯网络或 GPS 定位方式来确定出移动设备所在的位置。 利用定位服务,可以开发出许多丰富多彩的功能。比如天气预报 APP,...

deniro
08/04
0
0
android中getSystemService详解

my.oschina.net/yuanxulong/blog/323173 android的后台运行在很多service,它们在系统启动时被SystemServer开启,支持系统的正常工作,比如MountService监听是否有SD卡安装及移除,Clipboard...

程序袁_绪龙
2014/09/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

驰狼课堂

http://www.chilangedu.com/

求是科技
15分钟前
0
0
jumpserver 报错"Incorrect string value

申明 本文所有内容参考自jumpserver记录命令无法入库问题 #1773 简介 jumpserver 1.4.0在jumpserver.log中大量报错,错误日志 File "/opt/jumpserver/apps/terminal/api.py", line 246, i...

zhnxin
22分钟前
2
0
用户管理相关配置文件及命令

9月19日任务 2.27linux和windows互传文件 3.1 用户配置文件和密码配置文件 3.2 用户组管理 3.3 用户管理 扩展知识 实用小工具 简单命令行下实现Linux/Windows文件互传 前提:使用远程工具Xsh...

robertt15
40分钟前
0
0
presto 架构

presto 介绍 是Facebook开源的,完全基于内存的并⾏计算,分布式SQL交互式查询引擎 是一种Massively parallel processing (MPP)架构,多个节点管道式执⾏ ⽀持任意数据源(通过扩展式Connect...

张欢19933
40分钟前
0
0
Ajax技术应用

1. 相关概述 1. ajax:即异步js与xml,可以实现客户端与服务端之间数据的异步交互。对于普通的B/S 模式是采用的同步方式,即一次请求必须等待一次服务器响应完成,而异步则是客户端发送请求后...

江左煤郎
40分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部