一.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。闷了···这个问题搁浅了。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/muyu114/archive/2010/07/16/5736402.aspx

更多相关文章

  1. Robolectric使用(一)简单使用
  2. Android(安卓)组件系列-----Activity的传值和回传值
  3. Android艺术探索学习笔记:第2章 IPC机制
  4. 本科学习Android笔记之传智播客_快速掌握Android视频教程
  5. 关于实现S5PV210同时跑wince 和android双系统实现的可能性讨方法
  6. Android与Js调用
  7. Android(安卓)自定义View控件,实现跟随手指触摸移动的小球
  8. Android(安卓)Studio 一个module引用另一个模块module的方法
  9. Android总结(基础篇)-骚人文客

随机推荐

  1. Sql Server基本函数
  2. SQL连接查询介绍
  3. sql编程的几个常识
  4. ACCESS数据库的压缩,备份,还原,下载,删除
  5. 数据库存储过程分页显示
  6. 一个比较实用的大数据量分页存储过程
  7. 删除重复的记录,并保存第一条记录或保存
  8. MSSQL数据库的定期自动备份计划。
  9. 删除重复记录
  10. 直接循环写入数据