一.WIFI状态的获取和更改

适用于 SDK1.0 , SDK1.5
1.获取WIFI状态
方法1:通过WifiManager进行操作

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

wifiManager.isWifiEnabled();

要求权限:android.permission.ACCESS_WIFI_STATE


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

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

返回 “0″ “1″

2.通过 WifiManager 更改WIFI状态

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

wifiManager.setWifiEnabled(false );

wifiManager.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状态的方法依然没有改变(获取方法中做了封装)

Settings.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)

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

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

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

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

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

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

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

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

更多相关文章

  1. Android(安卓)View(四)-View相关属性详解
  2. android-pluginmgr不需要插件规范的apk动态加载框架
  3. android File保存数据
  4. ()Android中的Activity创建与周期
  5. Android网络请求框架(四)Retrofit和RxJava的封装
  6. Android(安卓)Studio使用第三方框架的方法
  7. Android结合kotlin使用coroutine的方法实例
  8. Android消息传递机制Handler完全解析之4内存泄漏等问题
  9. 详解Android(安卓)消息处理机制

随机推荐

  1. 64Ubuntu报错Failed to get the adb vers
  2. 每次吃一点AndroidのAS问题大集合
  3. Android常用英文词汇(仅限自己收藏)
  4. 【Android】常用的adb命令
  5. android 自定义Button按钮显示样式
  6. Android开源项目分类汇总【二】
  7. android group by
  8. Android---Android下嵌入式数据库SqlLite
  9. Android来电和短信操作
  10. Android(安卓)- Design Support Library