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文件中添加了权限:
程序任会报错:
: 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://mycoding.iteye.com/blog/1275162
更多相关文章
- Android(安卓)QuickSetting---手电筒控制
- Android:inflate.inflate()方法
- Android(安卓)UI编程(1)——九宫格(GridView)
- ListView与BaseAdapter优化
- Android(安卓)使用OKHttp获取字符串和下载图片
- Android(安卓)Force Close 出现的异常原因分析及解决方法
- Android对话框AlertDialog.Builder使用方法
- android gradle导入依赖的另一个方法
- Android——View绘制流程