文档章节

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

c
 chenming
发布于 2014/04/24 18:35
字数 200
阅读 5440
收藏 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中getSystemService详解

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

程序袁_绪龙
2014/09/29
0
0
android开发GPS定位测试(附效果图和示例)

本人做了GPS相关的嵌入式软件已经几年了,所以说起要做个测试 GPS定位模块的程序,第一反应就是串口读取GPS模块的数据,然后解析GPS的NMEA格式数据 今天因为工作需要,把以前编写的一个GPS测...

一别经年
2013/12/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

揭秘 | 双11逆天记录背后的数据库技术革新

摘要: 第十个天猫“双11”狂欢节圆满落幕,如今双11已不仅仅是天猫的盛会,更是阿里技术人的新年 每一个数字背后 都需要强大的技术支撑 Higher, Faster, Smarter 是我们不变的追求 技术无边...

阿里云云栖社区
25分钟前
4
0
element ui中的input组件不能监听键盘事件解决

vue使用element-ui的el-input监听不了键盘事件,原因应该是element-ui自身封装了一层div在input标签外面,把原来的事件隐藏了,所以如下代码运行是无响应的: <el-input v-model="search" p...

呵呵闯
28分钟前
3
0
Linux常用中间件启动命令

zookeeper redis lts

王桥修道院副院长
29分钟前
2
0
Kotlin极简教程中对? extends 和 ? super (out和int)的描述

PECS 现在问题来了:我们什么时候用extends什么时候用super呢?《Effective Java》给出了答案: PECS: producer-extends, consumer-super 比如,一个简单的Stack API: public class Stack<E...

SuShine
30分钟前
1
0
微信分享link问题

前提:公司业务,分享的页面需要自定义并且是一个固定页面 因此自定义分享link,这里存在一个问题,必须与安全域名一致,自不必说,而且这个link必须是当有协议的,也就是说不能写成locatio...

litCabbage
32分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部