`

android获取/更改gps和WIFI状态

阅读更多


一.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。

 

 

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

分享到:
评论

相关推荐

    Android获取更改gps和WIFI状态.doc

    Android 获取更改 GPS 和 WIFI 状态 Android 操作系统中,获取和更改 GPS 和 WIFI 状态是非常重要的功能,特别是在应用程序中需要使用到定位和网络连接的场景下。本文将详细介绍如何获取和更改 GPS 和 WIFI 状态的...

    android 更改 Wifi 或GPS状态

    Android 操作系统中,Wi-Fi 和 GPS 状态的获取和更改是非常重要的功能,本文将详细介绍如何通过 Android 应用程序来获取和更改 Wi-Fi 和 GPS 状态。 一、获取 Wi-Fi 状态 在 Android 中,获取 Wi-Fi 状态可以通过...

    安卓Android源码——androidGPS及WIFI基站定位坐标源码.zip

    在安卓(Android)系统中,定位服务是移动应用开发中的重要组成部分,主要依赖于GPS(全球定位系统)和WIFI基站来获取设备的位置信息。这个压缩包“安卓Android源码——androidGPS及WIFI基站定位坐标源码.zip”提供...

    获取wifi的相关信息(经纬度)

    首先,你需要确保用户的设备已开启WiFi服务,并且应用有权限访问网络状态和修改网络设置。在AndroidManifest.xml中添加以下权限: ```xml <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /...

    android设置系统亮度、音量

    在Android操作系统中,控制设备的亮度、音量以及开关功能如GPS和WiFi是常见的操作,这对于用户来说至关重要,因为它们直接影响到设备的使用体验。本文将深入探讨如何在Android平台上实现这些功能。 首先,让我们来...

    基于android的手机位置和状态上报系统.pdf

    本文主要探讨了一种基于Android的手机位置和状态上报系统,该系统旨在利用Android设备的GPS和WIFI定位技术,实现室内和室外的定位,并将位置和设备状态信息上报到服务器。 1. **绪论** 传统的定位方式如GPS和蜂窝...

    ap6212a0_a33_sc3817r_服务器验证通过_bt已经通了_wifi需要修改配置_需要再次验证_20170626_1549.7z

    # frameworks/native/data/etc/android.hardware.touchscreen.multitouch.jazzhand.xml:system/etc/permissions/android.hardware.touchscreen.multitouch.jazzhand.xml \ # frameworks/native/data/etc/android....

    ap6212a0_bb16v3_sina33验证通过BT的功能_wifi部分有问题_20170626_1148没有外层目录.7z

    # frameworks/native/data/etc/android.hardware.touchscreen.multitouch.jazzhand.xml:system/etc/permissions/android.hardware.touchscreen.multitouch.jazzhand.xml \ # frameworks/native/data/etc/android....

    安卓 cm miui gps修复技术

    可以通过修改系统文件如`system/etc/gps.conf`或`system/etc/wifi/wpa_supplicant.conf`来调整GPS参数,例如增加AGPS服务器的设置。 6. **恢复出厂设置**:如果以上方法无效,可以考虑恢复手机到出厂状态,但注意这...

    android系统权限大全

    - **ACCESS_WIFI_STATE**:允许应用读取和更改WiFi状态,包括启用或禁用WiFi。 ### 3. 设备状态与硬件权限 - **BATTERY_STATS**:获取电池统计信息,如剩余电量等。 - **BLUETOOTH/BLUETOOTH_ADMIN**:蓝牙权限,...

    Android应用源码获取手机信息.zip

    2. **网络状态**:例如,网络类型(WiFi、移动数据)、网络连接状态、IP地址等,可以使用`ConnectivityManager`和`WifiManager`的相关API获取。 3. **SIM卡信息**:SIM卡运营商、IMSI号、SIM卡状态等,可借助`...

    蓝牙,wifi ,GPS,亮度,响铃模式等功能切换源码

    在移动设备开发中,尤其是Android系统,控制蓝牙、WiFi、GPS、屏幕亮度和响铃模式等硬件或系统功能是常见的需求。这些功能的切换源码通常涉及到系统API的调用和用户界面的设计。以下是关于这些功能的一些详细知识点...

    GPSProbe允许您记录附近支持wifi的设备的GPS、MAC地.zip

    他们可以查看源码,了解如何实现GPS和WiFi扫描功能,如何处理和存储数据,甚至可以根据需求进行功能扩展或修改。 GPSProbe可能包含以下主要组成部分: 1. **GPS接口**:与设备的GPS硬件交互,获取精确的地理位置...

    Android SDK 中文开发文档.pdf

    6. **硬件接口**:包括对GSM电话、蓝牙、EDGE、3G、WiFi等通信方式的接口,以及对摄像头、GPS、指南针和加速度计的访问。 二、Android应用程序结构 1. **核心应用程序**:Android随带一系列预装应用,如电子邮件...

    Android配置文件权限大全

    网络状态相关的权限包括`ACCESS_NETWORK_STATE`和`ACCESS_WIFI_STATE`,分别用于获取网络连接状态和WiFi接入点的状态信息。 `ACCOUNT_MANAGER`和`AUTHENTICATE_ACCOUNTS`与账户管理相关,前者用于获取账户验证信息...

    ActDuino S500_WIFI-BT-GPS调试手册_V1.0-20150626

    在Kernel层需要配置内核,添加相应模块驱动,控制WIFI/BT模块的GPIO口和WIFI模块使用的硬件接口。而Android层的配置包括模组型号的设定、BT模块使用的硬件接口的配置、在rc文件中加载ko模块和修改目录权限、配置休眠...

    Android:Wi-Fi NFC和GPS

    Android系统架构是理解Android Wi-Fi、NFC和GPS开发的基础。Android是由Google开发的一款开放源代码的手机操作系统,其基于Linux内核,由四层结构组成:Linux内核层、Libraries层、Framework层和Applications层。 ...

    Android权限整理(较全面)

    本篇内容基于一份详细的文档资料,旨在整理和归纳Android系统的权限类型,包括普通权限、敏感权限、特殊权限、签名权限等,共计涉及百余项权限。 #### 二、普通权限(Normal Permissions) 普通权限是Android系统中...

    Android AndroidManifest 清单文件所有权限详解.doc

    - `android.permission.ACCESS_WIFI_STATE`:获取WiFi状态信息,包括连接状态和热点信息。 - `android.permission.ACCOUNT_MANAGER`:访问账户验证信息,如Gmail账户。 - `android.permission.AUTHENTICATE_ACCOUNTS...

Global site tag (gtag.js) - Google Analytics