`

Android利用程序实现GPS的打开或关闭

 
阅读更多

Android提供了Setting.Secure类,官方对这个类的解释是用来获取系统设置属性值,但不允许修改。需要用户通过系统UI或者专门 的API来设置属性值。但是在2.2之后,Setting.Secure增加了isLocationProviderEnabled和 setLocationProviderEnabled方法,通过测试发现isLocationProviderEnabled方法获取GPS的状态的, 但是如果修改GPS的状态:

Settings.Secure.setLocationProviderEnabled( getContentResolver(), LocationManager.GPS_PROVIDER, true);

而且在mainfest文件中添加了权限:

<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/>

程序任会报错:

 

: Caused by: java.lang.SecurityException: Permission denial: writing to secure settings requires android.permission.WRITE_SECURE_SETTINGS

最终解决办法如下:

Intent gpsIntent = new Intent();
    gpsIntent.setClassName("com.android.settings",
            "com.android.settings.widget.SettingsAppWidgetProvider");
    gpsIntent.addCategory("android.intent.category.ALTERNATIVE");
    gpsIntent.setData(Uri.parse("custom:3"));
    try {
        PendingIntent.getBroadcast(this, 0, gpsIntent, 0).send();
    }
    catch (CanceledException e) {
        e.printStackTrace();
    }

这样就达到了修改GPS状态的作用,如果是开发该方法就将GPS关闭,反之依然。

参考:http://www.learningandroid.net/blog/advance/programmable-toggle-gps/

分享到:
评论

相关推荐

    GPS打开及获取数据 demo

    本示例“GPS打开及获取数据 demo”是一个实用的编程演示,它展示了如何在Android平台上开启GPS服务并获取实时的位置数据。由于涉及到系统级别的权限,所以这个demo需要申请并使用到system权限。 首先,我们要理解...

    Android程序设计基础

     Android为用户与移动应用程序交互提供了全新的方式,同时也提供了实现这些交互的底层技术保障。而Android最令人心动之处,莫过于你可以为它编写软件,本书恰好可以为你提供这方面的帮助。  本书读者对象  阅读...

    Android Gps Test源码.zip

    例如,当GPS打开或关闭时,广播接收器可以捕获这些事件并相应地更新UI。 8. **UI设计**:应用的用户界面(UI)是与用户交互的关键部分。源码中可能包含了XML布局文件,定义了按钮、文本框、地图视图等组件的位置和...

    android gps架构详细分析

    - 定义了GPS硬件接口的标准,包括打开、关闭设备等基本操作。 - 实现了硬件抽象层的基础功能,便于不同的硬件平台进行适配。 2. **hardware/qcom**: - 针对特定硬件供应商(如高通)提供的GPS实现。 - 包括了...

    android_gps

    Android为开发者提供了丰富的API和工具来集成GPS功能,使得应用程序能够实现各种与位置相关的服务,如导航、地图应用、追踪、社交网络签到等。 一、Android GPS基础 1. AndroidManifest.xml配置:在开发Android...

    GPS轨迹记录器

    在Android平台上,GPS轨迹记录器通常允许用户开启或关闭GPS服务,设置记录间隔,保存轨迹点,并可能提供地图视图来显示行进路线。 GPS技术的核心是通过接收卫星信号来确定地理位置。在Android设备上,GPS轨迹记录器...

    代码打开gprs、获取gps坐标

    然而,由于隐私和安全原因,通常不建议或不允许应用程序直接控制硬件层面的GPS开启。因此,描述中提到的是通过跳转到系统设置页面让用户手动开启GPS,而非通过代码直接操作。在用户开启GPS后,应用可以通过GPS服务来...

    Android-OPhone开发完全讲义中硬件相关实例包括gps,相机等

    GPS(全球定位系统)在Android中通过LocationManager和LocationProvider接口来实现。开发者可以通过LocationManager请求位置更新,并设置监听器来获取经纬度、速度、方向等信息。同时,可以使用Geocoder类将坐标...

    串口接收GPS

    本项目利用Android编程语言,通过串行通信接口来获取全球定位系统(GPS)的数据,并在电脑终端上进行实时显示。这有助于开发者理解和实践如何将GPS数据集成到Android应用程序中,对于学习Android开发和GPS数据处理具有...

    GPS临近短信警告

    标题“GPS临近短信警告”所涉及的技术点主要是利用GPS定位技术与短信通信功能,结合应用程序设计,实现一种基于地理位置的自动消息发送服务。这个应用的主要功能是当用户接近或远离预设的地理位置时,能够自动向指定...

    Open_GPS.zip_open_open 方案 gps

    2. **开启GPS服务**:在Android设备上,用户可以通过设置菜单来开启或关闭GPS服务。通常,进入“设置” -&gt; “位置”或“位置服务” -&gt; 找到“GPS卫星”或“使用GPS卫星”,将其打开。在Android 2.3中,这个过程可能...

    Android 串口 例程测试通过

    在硬件层面,Android设备通常会有一个或多个UART接口,用于与外部设备如蓝牙模块、GPS接收器或自定义硬件板卡进行通信。 **Android 串口API** 在Android中,由于安全和权限限制,直接访问硬件串口并不像在桌面系统...

    android6.0-libserial-port

    "android6.0-libserial-port"是Android系统中用于处理串行通信的库,它为开发者提供了API,使得程序能够轻松地打开、配置和读写串行端口。主要功能包括: 1. **打开串行端口**:允许开发者指定设备路径,如"/dev/...

    新版Android开发教程.rar

    Android 是一个专门针对移动设备的软件集,它包括一个操作系统,中间件和一些重要的应用程序。 Beta 版 的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 ...

    Google Android SDK开发范例大全(PDF高清完整版1)(4-1)

    10.2 GPS轨迹记录器——利用LocationListener在地图上画图并换算距离 10.3 女性贴身看护——AlarmManager.DatePicker.TimePicker 10.4 手机QRCode二维条形码生成器——Canvas与SurfaceHolder绘图 10.5 AndroidQRCode...

    Google Android SDK开发范例大全(PDF完整版4)(4-4)

    10.2 GPS轨迹记录器——利用LocationListener在地图上画图并换算距离 10.3 女性贴身看护——AlarmManager.DatePicker.TimePicker 10.4 手机QRCode二维条形码生成器——Canvas与SurfaceHolder绘图 10.5 AndroidQRCode...

    极客学院Android传感器源码及PPT

    通过学习这些源码,开发者可以深入理解Android系统如何与硬件交互,以及如何利用这些硬件功能来构建更具创新性的应用程序。 1. **蓝牙(Bluetooth)**:Android提供了BluetoothAdapter类来处理蓝牙的开启、关闭、...

    Google Android SDK开发范例大全(PDF高清完整版3)(4-3)

    10.2 GPS轨迹记录器——利用LocationListener在地图上画图并换算距离 10.3 女性贴身看护——AlarmManager.DatePicker.TimePicker 10.4 手机QRCode二维条形码生成器——Canvas与SurfaceHolder绘图 10.5 AndroidQRCode...

Global site tag (gtag.js) - Google Analytics