zoukankan      html  css  js  c++  java
  • Android通过编码实现GPS开关

    在Android 2.2以后才可使用

     1 import android.content.ContentResolver;
     2 import android.content.Context;
     3 import android.location.LocationManager;
     4 import android.provider.Settings;
     5 
     6 /**
     7  * GPS类,用来判断GPS是否开启,切换GPS状态
     8  * 在 AndroidManifest.xml中需要添加权限:
     9  * <uses-permission android:name="android.permission.WRITE_SETTINGS" />
    10  * <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
    11  * 在 AndroidManifest.xml中添加系统权限: android:sharedUserId="android.uid.system" 
    12  * 例如:
    13  * <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    14  *     android:sharedUserId="android.uid.system" >
    15  * @author ljp 2014-1-11
    16  *
    17  */
    18 public class GPS {
    19     /**
    20      * Gets the state of GPS location.
    21      * 
    22      * @param context
    23      * @return true if enabled.
    24      */
    25     public static boolean getGpsState(Context context) {
    26         ContentResolver resolver = context.getContentResolver();
    27         boolean open = Settings.Secure.isLocationProviderEnabled(resolver,
    28                 LocationManager.GPS_PROVIDER);
    29         System.out.println("getGpsState:" + open);
    30         return open;
    31     }
    32 
    33     /**
    34      * Toggles the state of GPS.
    35      * 
    36      * @param context
    37      */
    38     public static void toggleGps(Context context) {
    39         ContentResolver resolver = context.getContentResolver();
    40         boolean enabled = getGpsState(context);
    41         Settings.Secure.setLocationProviderEnabled(resolver,
    42                 LocationManager.GPS_PROVIDER, !enabled);
    43     }
    44 }

    如果加入权限 <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />后出现 

    permission is only granted to system apps问题,可以用以下解决方法:点eclipse的菜单project->clean

    上面步骤后本来以为可以了,但又出现新的问题,那就是android.uid.system权限添加后编译出现错误:Installation error: INSTALL_FAILED_SHARED_USER_INCOMPATIBLE

    解决办法:通过在linux环境下更改编码,vold 模块里的 Volume.cpp文件 在调用doMount的语句里做一下修改~ doMount(devicePath, path, false, false, false,1000, 1015, 0702, true) ↓ doMount(devicePath, path, false, true, false,1000, 1015, 0002, true) 编译以后.(由于没用过linux环境,暂时还没哟测试,待有空下个源码重编译一下

  • 相关阅读:
    js数组元素的添加和删除
    jquery中prop()方法和attr()方法的区别浅析
    jquery选择器 之 获取父级元素、同级元素、子元素
    jQuery 序列化表单数据 serialize() serializeArray()
    Awesome Python,Python的框架集合
    关于树莓派HDMI转VGA线接显示器黑屏
    python爬虫xpath的语法
    爬虫下载百度贴吧图片
    项目经理的磨练(2) 科学的安排项目日程安排
    项目经理的磨练
  • 原文地址:https://www.cnblogs.com/gisdream/p/3515389.html
Copyright © 2011-2022 走看看