要在应用程序中操作GPS开关需要权限:
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />

但在配置文件中添加此权限之后会报错,无法再eclipse里面正常编译,怎么办?
1、方法一:将项目放到Android源码中编译;
2、方法二:网上有人说clean一下,果然有效果;

正常编译之后安装,添加权限了也报错,无法正常运行。
研究之后发现还需要System共享权限,就是:
android:sharedUserId="android.uid.system"


要用这个共享是有要求的:
1、用系统签名;
2、安装到System/app目录下;

这样看来,普通应用程序是没办法在正常方式下操作GPS开关的,这也符合Android设计时的安全考虑。如果需要在定制APP中操作开关,有2个方法:
1、修改系统,提供给APP操作接口;
2、按上面流程操作;

下面贴一下GPS操作的方法:

public static boolean getGpsState(Context context) {ContentResolver resolver = context.getContentResolver();return Settings.Secure.isLocationProviderEnabled(resolver,LocationManager.GPS_PROVIDER);}public static void toggleGps(Context context) {ContentResolver resolver = context.getContentResolver();boolean enabled = getGpsState(context);Settings.Secure.setLocationProviderEnabled(resolver,LocationManager.GPS_PROVIDER, !enabled);}public static boolean getGpsState(Context context) {LocationManager locMgr = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);return locMgr.isProviderEnabled(LocationManager.GPS_PROVIDER);}public static void toggleGps(Context context) {ContentResolver resolver = context.getContentResolver();boolean enabled = getGpsState(context);//Settings.Secure.putInt(resolver, LocationManager.GPS_PROVIDER, enabled?0:1);String value = LocationManager.PROVIDERS_CHANGED_ACTION;if (enabled) {value = "-" + LocationManager.GPS_PROVIDER;} else {value = "+" + LocationManager.GPS_PROVIDER;}Settings.Secure.putString(resolver, Settings.Secure.LOCATION_PROVIDERS_ALLOWED, value);}

更多相关文章

  1. 浅谈Java中Collections.sort对List排序的两种方法
  2. Python list sort方法的具体使用
  3. python list.sort()根据多个关键字排序的方法实现
  4. android上一些方法的区别和用法的注意事项
  5. android实现字体闪烁动画的方法
  6. Android中dispatchDraw分析
  7. Android四大基本组件介绍与生命周期
  8. Android(安卓)MediaPlayer 常用方法介绍
  9. 在Fragment中设置控件点击方法,执行失败。

随机推荐

  1. 开发者应深入学习的10个Android开源应用
  2. android 导入自己的生成的jar,老是 could
  3. Ubuntu编译Android(安卓)KitKat 4.4出现C
  4. Handler异步方式详解及其使用
  5. android开发时 使用android layout edito
  6. 转 使用HTML5开发Android本地应用(一)
  7. 基于rk3288平台android5.1系统的wifi流程
  8. [Android]使用Spring for Android改善数
  9. 安卓学习日记(一):了解安卓架构(linux内核层
  10. android 2.3 频率管理