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/
http://bigcat.easymorse.com/?p=1549
分享到:
相关推荐
本示例“GPS打开及获取数据 demo”是一个实用的编程演示,它展示了如何在Android平台上开启GPS服务并获取实时的位置数据。由于涉及到系统级别的权限,所以这个demo需要申请并使用到system权限。 首先,我们要理解...
Android为用户与移动应用程序交互提供了全新的方式,同时也提供了实现这些交互的底层技术保障。而Android最令人心动之处,莫过于你可以为它编写软件,本书恰好可以为你提供这方面的帮助。 本书读者对象 阅读...
例如,当GPS打开或关闭时,广播接收器可以捕获这些事件并相应地更新UI。 8. **UI设计**:应用的用户界面(UI)是与用户交互的关键部分。源码中可能包含了XML布局文件,定义了按钮、文本框、地图视图等组件的位置和...
- 定义了GPS硬件接口的标准,包括打开、关闭设备等基本操作。 - 实现了硬件抽象层的基础功能,便于不同的硬件平台进行适配。 2. **hardware/qcom**: - 针对特定硬件供应商(如高通)提供的GPS实现。 - 包括了...
Android为开发者提供了丰富的API和工具来集成GPS功能,使得应用程序能够实现各种与位置相关的服务,如导航、地图应用、追踪、社交网络签到等。 一、Android GPS基础 1. AndroidManifest.xml配置:在开发Android...
在Android平台上,GPS轨迹记录器通常允许用户开启或关闭GPS服务,设置记录间隔,保存轨迹点,并可能提供地图视图来显示行进路线。 GPS技术的核心是通过接收卫星信号来确定地理位置。在Android设备上,GPS轨迹记录器...
然而,由于隐私和安全原因,通常不建议或不允许应用程序直接控制硬件层面的GPS开启。因此,描述中提到的是通过跳转到系统设置页面让用户手动开启GPS,而非通过代码直接操作。在用户开启GPS后,应用可以通过GPS服务来...
GPS(全球定位系统)在Android中通过LocationManager和LocationProvider接口来实现。开发者可以通过LocationManager请求位置更新,并设置监听器来获取经纬度、速度、方向等信息。同时,可以使用Geocoder类将坐标...
本项目利用Android编程语言,通过串行通信接口来获取全球定位系统(GPS)的数据,并在电脑终端上进行实时显示。这有助于开发者理解和实践如何将GPS数据集成到Android应用程序中,对于学习Android开发和GPS数据处理具有...
标题“GPS临近短信警告”所涉及的技术点主要是利用GPS定位技术与短信通信功能,结合应用程序设计,实现一种基于地理位置的自动消息发送服务。这个应用的主要功能是当用户接近或远离预设的地理位置时,能够自动向指定...
2. **开启GPS服务**:在Android设备上,用户可以通过设置菜单来开启或关闭GPS服务。通常,进入“设置” -> “位置”或“位置服务” -> 找到“GPS卫星”或“使用GPS卫星”,将其打开。在Android 2.3中,这个过程可能...
在硬件层面,Android设备通常会有一个或多个UART接口,用于与外部设备如蓝牙模块、GPS接收器或自定义硬件板卡进行通信。 **Android 串口API** 在Android中,由于安全和权限限制,直接访问硬件串口并不像在桌面系统...
"android6.0-libserial-port"是Android系统中用于处理串行通信的库,它为开发者提供了API,使得程序能够轻松地打开、配置和读写串行端口。主要功能包括: 1. **打开串行端口**:允许开发者指定设备路径,如"/dev/...
Android 是一个专门针对移动设备的软件集,它包括一个操作系统,中间件和一些重要的应用程序。 Beta 版 的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 ...
10.2 GPS轨迹记录器——利用LocationListener在地图上画图并换算距离 10.3 女性贴身看护——AlarmManager.DatePicker.TimePicker 10.4 手机QRCode二维条形码生成器——Canvas与SurfaceHolder绘图 10.5 AndroidQRCode...
10.2 GPS轨迹记录器——利用LocationListener在地图上画图并换算距离 10.3 女性贴身看护——AlarmManager.DatePicker.TimePicker 10.4 手机QRCode二维条形码生成器——Canvas与SurfaceHolder绘图 10.5 AndroidQRCode...
通过学习这些源码,开发者可以深入理解Android系统如何与硬件交互,以及如何利用这些硬件功能来构建更具创新性的应用程序。 1. **蓝牙(Bluetooth)**:Android提供了BluetoothAdapter类来处理蓝牙的开启、关闭、...
10.2 GPS轨迹记录器——利用LocationListener在地图上画图并换算距离 10.3 女性贴身看护——AlarmManager.DatePicker.TimePicker 10.4 手机QRCode二维条形码生成器——Canvas与SurfaceHolder绘图 10.5 AndroidQRCode...