分享

代码中开启关闭GPS

 熟练工场 2014-03-13
 本帖最后由 wangwenxin6868 于 2010-12-22 10:51 编辑

查看了Settings源代码,发现其开启关闭GPS的代码如下:
   /**
     * Gets the state of GPS location.
     *
     * @param context
     * @return true if enabled.
     */
    private static boolean getGpsState(Context context) {
        ContentResolver resolver = context.getContentResolver();
        boolean open = Settings.Secure.isLocationProviderEnabled(resolver, LocationManager.GPS_PROVIDER);
        System.out.println("getGpsState:"+open);
        return open;
    }        
    /**
     * Toggles the state of GPS.
     *
     * @param context
     */
    private void toggleGps(Context context) {
        ContentResolver resolver = context.getContentResolver();
        boolean enabled = getGpsState(context);
        Settings.Secure.setLocationProviderEnabled(resolver, LocationManager.GPS_PROVIDER,
          !enabled);
    }
  以上代码在Eclisp有错误,在Linux下编译,可以通过,安装APK后运行,有需要如下权限的提示:
       <uses-permission android:name="android.permission.WRITE_SETTINGS" />
    <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />   
     即使在AndroidManifest.xml中声明了权限,也还是有这个错误提示。
   解决方法:
       在 AndroidManifest.xml中添加系统权限: android:sharedUserId="android.uid.system"
   例如:
<manifest xmlns:android="http://schemas./apk/res/android"
      android:sharedUserId="android.uid.system"
      >
  在Linux下编译,就可以了

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多