摘要: 本文简单总结了如何监听GPS开关的小技巧

有时需要监听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);
}
}

Android中如何监听GPS开启和关闭的更多相关文章

  1. Android零基础入门第34节:Android中基于监听的事件处理

    原文:Android零基础入门第34节:Android中基于监听的事件处理 上一期我们学习了Android中的事件处理,也详细学习了Android中基于监听的事件处理,同时学会了匿名内部类形式,那么本 ...

  2. Android中添加监听回调接口的方法

    在Android中,我们经常会添加一些监听回调的接口供别的类来回调,比如自定义一个PopupWindow,需要让new这个PopupWindow的Activity来监听PopupWindow中的一些组 ...

  3. android中实现监听的四种方法

    (1)自身类作为事件监听器 package cn.edu.gdmec.s07150745.work5; import android.support.v7.app.AppCompatActivity; ...

  4. Android 关于ListView中按钮监听的优化问题(方法一)

    在Android应用开发过程中经常会用到ListView,并且每次在item中都要对点击事件进行监听.在给按钮添加OnClickListener时,一般会下意识的在getView()中找到每一个But ...

  5. Android 关于ListView中按钮监听的优化问题(方法二)

    关于ListView中按钮监听的优化问题(方法一)地址: http://www.cnblogs.com/steffen/p/3951901.html 之前的方法一,虽然能够解决position的传递, ...

  6. Android实现网络监听

    一.Android Wifi常用广播 网络开发中主体会使用到的action: ConnectivityManager.CONNECTIVITY_ACTION WifiManager.WIFI_STAT ...

  7. Android手机上监听短信的两种方式

    Android手机上监听短信有两种方式: 1. 接受系统的短信广播,操作短信内容. 优点:操作方便,适合简单的短信应用. 缺点:来信会在状态栏显示通知信息. AndroidManifest.xml: ...

  8. android的电话监听

    android的电话监听 新建一个项目,结构图如下: PhoneService: package com.demo.tingdianhua; import android.app.Service; i ...

  9. 新建Oracle数据库时,提示使用database control配置数据库时,要求在当前oracle主目录中配置监听程序

    新建一个oracle数据库时,当提示使用database control配置数据库时,要求在当前oracle主目录中配置监听程序等字样的时候,问题是那个监听的服务没有启动,解决方法如下: 打开cmd命 ...

随机推荐

  1. svn用法:摘自http://wh-vip-126-com200907043220.iteye.com/blog/424642

    下载最新版本svn(http://www.visualsvn.com/server/ ) 1.安装SVN 2.创建user与repository 3.Eclipse下配置SVN插件    3.1帮助- ...

  2. junit高级篇(参数化、打包测试)-实例代码

    工程目录: 参数化测试,SquareTest.java: import static org.junit.Assert.*; import java.util.Arrays; import java. ...

  3. jpype调用jar

    import easyguiimport osfrom jpype import * jarpath = "d:\jar"print "jarPath: %s" ...

  4. iOS开发UI篇—无限轮播(新闻数据展示)

    iOS开发UI篇—无限轮播(新闻数据展示) 一.实现效果        二.实现步骤 1.前期准备 (1)导入数据转模型的第三方框架MJExtension (2)向项目中添加保存有“新闻”数据的pli ...

  5. [Jquery]某宝图片轮播(无缝、带左右切换按钮)

    [效果] 左右移动(非渐隐) [思路] 1.结构与样式 ①最外层div盒子当容器,里面ul宽度无限大并且相对定位(到时候移动其实移的是ul的left) ②按钮的透明度可用background:rgba ...

  6. Lantern卫星接收器:为你提供免费上网服务

    包括笔者在内,许多现代人的日常生活都无法离开网络,因为在网络上我们几乎可以找到任何我们需要的信息.但你是否有想过在户外无网络信号的情况下如何接收网络数据呢?一个名为Outernet Inc.的公司为我 ...

  7. find_first_of()和 find_last_of() 【获取路径、文件名】

    find_first_of()和 find_last_of() [获取路径.文件名](2011-06-11 12:44:46)转载▼标签: 杂谈 分类: c  string 类提供字符串处理函数,利用 ...

  8. 12-8 php基础

    <?php //单行注释/* 多行注释*/ //弱类型语言//var a = 10;/*$a=10;$b = "hello";var_dump($a);$a="wo ...

  9. java进程性能分析步骤-超越昨天的自己系列(11)

    java进程load过高分析步骤: top 查看java进程情况     top -Hp 查看某个进程的具体线程情况   printf 0x%x 确认哪一个线程占用cpu比较多,拿出来转成16进制   ...

  10. MYSQL安装--小白教程

    这个是mysql的安装过程,其实mysql的安装也很简单,但是我安装了一下午!!一下午!!原因就是,我把mysql的官网都翻遍了,都没找到64bit的.msi安装包,后来才想到好像64bit的电脑可以 ...