一.WIFI状态的获取和更改

适用于 SDK1.0 , SDK1.5

1.获取WIFI状态

方法1:通过WifiManager进行操作

1WifiManager wifiManager = (WifiManager)getSystemService(Context.WIFI_SERVICE);

2

3wifiManager.isWifiEnabled();

要求权限:android.permission.ACCESS_WIFI_STATE

方法2:通过Settings.System进行操作

1Settings.System.getInt(getContentResolver(), Settings.System.WIFI_ON);

返回 “0″ “1″

2.通过 WifiManager 更改WIFI状态

1WifiManager wifiManager = (WifiManager)getSystemService(Context.WIFI_SERVICE);

2wifiManager.setWifiEnabled( false);

3wifiManager.setWifiEnabled( true );

二.gps状态的获取和更改

android GPS 状态的修改。但是SDK1.5之后就出现了很多诡异的地方,原来在SDK1.1以下的版本中开发的有关GPS开关的应用都出现了问题。

问题的根源:SDK1.5 把系统数据库中GPS开关的阀值从 system 表移动到了secure 表。

扩展:

1、通过adb shell 进入系统文件系统,cd data/data/com.android.providers.settings/databases 。然后进入settings.db 数据库中。输入 .schema查看所有表结构,你会发现有system 和 secure 表。

2、GPS是由location_providers_allowed 来控制的。当记录值为 location_providers_allowed|gps 表示仅GPS定位。(红色标记处为:”network” 仅基站定位 ;“gps” 仅GPS定位 ; “network,gps” 基站、GPS都开放;” “ 关闭定位)

当然获取GPS状态的方法依然没有改变(获取方法中做了封装)

1Settings.System.getString(getContentResolver(), Settings.System.LOCATION_PROVIDERS_ALLOWED);

要在Activity或者service中运行。当然别忘记了权限要求:android.permission.WRITE_SETTINGS

返回String :”network” 仅基站定位 ;“gps” 仅GPS定位 ; “network,gps” 基站、GPS都开放;” “ 关闭定位

修改的时候出漏子了!SDK1.0中的方法可用,但在SDK1.5中报错:(当然,权限还是要加:android.permission.WRITE_SETTINGS)

1Settings.System.putString(getContentResolver(), Settings.System.LOCATION_PROVIDERS_ALLOWED, "network");

2

3Settings.System.putString(getContentResolver(), Settings.System.LOCATION_PROVIDERS_ALLOWED, "gps");

SDK1.5报错说:location_providers_allowed has been moved to secure table。

好,那我们换另外方法试试:我不修改system表,我直接修改secure表总可以了吧!那我们就来试试~!将以上方法改为

1Settings.secure.putString(getContentResolver(), Settings.secure.LOCATION_PROVIDERS_ALLOWED, "network");

2

3Settings.secure.putString(getContentResolver(), Settings.secure.LOCATION_PROVIDERS_ALLOWED, "gps");

然后加上权限 android.permission.WRITE_SECURES.

结果咋样?结果没有报错,却提示 android.permission.WRITE_SECURES 为被授予!android对secure表做了严格的权限控制,一般的程序休想去对她做update 和insert。

最后无奈,只能提示用户手动开启gps功能。

android获取/更改gps和WIFI状态的更多相关文章

  1. Android获取当前连接的wifi名称

    首先AndroidMainfest.xml文件里加入权限: <uses-permission android:name="android.permission.ACCESS_NETWO ...

  2. 朝花夕拾-android 获取当前手机的内存卡状态和网络连接状态

    序言: 人的一生是一个选择的过程. 如果脚下只有一条路,只要一往无前即可,不用担心走错.即使是错也别无它法.然而人是不安分的,况且安于独木桥的行走,其目的地由于没有蜿蜒曲折去遮挡行路人的视线,一往无前 ...

  3. android获取系统wifi状态等

    WIFI 获取WIFI状态 WifiManager wifiManager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE); ...

  4. Android获取当前网络状态

    Android获取当前网络状态 效果图 有网络 没有网络 源码 下载地址(Android Studio工程):http://download.csdn.net/detail/q4878802/9052 ...

  5. Android获取网络状态

    Android获取网络状态 学习自 https://developer.android.google.cn/reference/android/net/ConnectivityManager http ...

  6. android 获取GPS定位

    AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xm ...

  7. Android中通过GPS或NetWork获取当前位置的经纬度

    今天在Android项目中要实现一个通过GPS或NetWork来获取当前移动终端设备的经纬度功能.要实现该功能要用到Android Framework 中的 LocationManager 类.下面我 ...

  8. Android 获取WIFI MAC地址的方法

    1. 经常用法,调用Android的API:WifiManager <uses-permission android:name="android.permission.ACCESS_W ...

  9. Android获取wifi MAC,关闭的wifi不能获取

    最近一直在尝试着在Android上通过ndk用C++获取本机MAC地址,但是用ioctl(SIOCGIFHWADDR)时,一直返回值小于0,即获取不到接口信息.刚开始我以为是自己漏掉了哪些访问权限,所 ...

随机推荐

  1. div错位解决IE6、IE7、IE8样式不兼容问题

    IE6里DIV错位的问题       采用”FLOAT:LEFT“的DIV在IE8.IE7.都没问题,IE6下却向下移动,出现空白.这是因为,IE6采用的内核默认把DIV之间的距离增加了3~5个PX, ...

  2. 在刚接触TI-DM8127-ipnc框架时注意的问题

    1. 修改内存分配不成功? 解决方法: 修改内存分配后需要重新编译mcfw.它影响3个核. 如果修改了cmem需要修改boostara. 2. 命令make clean后在make相机跑不起来? 解决 ...

  3. Spring依赖注入 --- 简单使用说明

    Spring依赖注入 --- 简单使用说明 本文将对spring依赖注入的使用做简单的说明,enjoy your time! 1.使用Spring提供的依赖注入 对spring依赖注入的实现方法感兴趣 ...

  4. 【LeetCode】190 & 191 - Reverse Bits & Number of 1 Bits

    190 - Reverse Bits Reverse bits of a given 32 bits unsigned integer. For example, given input 432615 ...

  5. C语言实现strcat

    首先看看代码: #ifndef STRCAT_H #define STRCAT_H /********************************************************* ...

  6. NServiceBus-日志

    默认的日志 NServiceBus一些有限,固执己见,内置的日志记录. 默认的日��行为如下: 控制台 所有 Info(及以上)消息将被输送到当前的控制台. 错误将会写 ConsoleColor.Re ...

  7. 在IIS 中如何配置URL Rewrite,并且利用出站规则保持被重写的Cookie的域

    Url Rewrite配置 xx.aa.com/bb/test1.aspx 会重写到 bb.aa.com/test1.aspx 具体怎么配置入站 出站规则 结果:

  8. dom 按着shift多选

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  9. CSS画出的各种形状图

    利用CSS可以画出各种需要的图形目录[1]矩形[2]圆形[3]椭圆[4]直角三角形[5]正三角形[6]平行四边形[7]梯形[8]六角星[9]六边形[10]五角星简单图形 矩形div{ width: 1 ...

  10. SecureCRT上传、下载文件(使用sz与rz命令)

    1.简述 借助securtCRT,使用linux命令sz可以很方便的将服务器上的文件下载到本地,使用rz命令则是把本地文件上传到服务器. 2.理解记忆 其中,对于sz和rz的理解与记忆我用了如下的方法 ...