要在应用程序中操作GPS开关需要权限:
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
但在配置文件中添加此权限之后会报错,无法再eclipse里面正常编译,怎么办?
1、方法一:将项目放到Android源码中编译;
2、方法二:网上有人说clean一下,果然有效果;
正常编译之后安装,添加权限了也报错,无法正常运行。
研究之后发现还需要System共享权限,就是:
android:sharedUserId="android.uid.system"
要用这个共享是有要求的:
1、用系统签名;
2、安装到System/app目录下;
这样看来,普通应用程序是没办法在正常方式下操作GPS开关的,这也符合Android设计时的安全考虑。如果需要在定制APP中操作开关,有2个方法:
1、修改系统,提供给APP操作接口;
2、按上面流程操作;
下面贴一下GPS操作的方法:
public static boolean getGpsState(Context context) {
ContentResolver resolver = context.getContentResolver();
return Settings.Secure.isLocationProviderEnabled(resolver,LocationManager.GPS_PROVIDER);
}
public static void toggleGps(Context context) {
ContentResolver resolver = context.getContentResolver();
boolean enabled = getGpsState(context);
Settings.Secure.setLocationProviderEnabled(resolver,LocationManager.GPS_PROVIDER, !enabled);
}
public static boolean getGpsState(Context context) {
LocationManager locMgr = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
return locMgr.isProviderEnabled(LocationManager.GPS_PROVIDER);
}
public static void toggleGps(Context context) {
ContentResolver resolver = context.getContentResolver();
boolean enabled = getGpsState(context);
// Settings.Secure.putInt(resolver, LocationManager.GPS_PROVIDER, enabled?0:1);
String value = LocationManager.PROVIDERS_CHANGED_ACTION;
if (enabled) {
value = "-" + LocationManager.GPS_PROVIDER;
} else {
value = "+" + LocationManager.GPS_PROVIDER;
}
Settings.Secure.putString(resolver, Settings.Secure.LOCATION_PROVIDERS_ALLOWED, value);
}
分享到:
相关推荐
支持2.1以上的android版本,可以把里面的APK下载到真机上测试,可以做到和系统的GPS开关同步控制,源码是在LINUX下编译的,因为android2.1把修改GPS开关的代码HIDE了,所以在2.1window平台下是编译不了。但是APK直接...
嵌入式开发-触摸和Android应用控制开关板.zip嵌入式开发-触摸和Android应用控制开关板.zip嵌入式开发-触摸和Android应用控制开关板.zip嵌入式开发-触摸和Android应用控制开关板.zip嵌入式开发-触摸和Android应用控制...
Android应用程序开发 代码与PPT 哈工程 王向辉
Android应用程序主要由代码和资源组成。资源主要就是指那些与UI相关的东西,例如UI布局、字符串和图片等。代码和资源分开可以使得应用程序在运行时根据实际需要来组织UI。这样就可使得应用程序只需要编译一次,就...
7个Android应用程序源代码 7个Android应用程序源代码 7个Android应用程序源代码 7个Android应用程序源代码 7个Android应用程序源代码 7个Android应用程序源代码
Android应用程序与传统的PC应用程序一样,都是消息驱动的。也就是说,在Android应用程序主线程中,所有函数都是在一个消息循环中执行的。Android应用程序其它线程,也可以像主线程一样,拥有消息循环。Android应用...
在Android应用程序中,有一类特殊的消息,是专门负责与用户进行交互的,它们就是触摸屏和键盘等输入事件。触摸屏和键盘事件是统一由系统输入管理器InputManager进行分发的。也就是说,InputManager负责从硬件接收...
Android系统采用一种称为Surface的UI架构为应用程序提供用户界面。在Android应用程序中,每一个Activity组件都关联有一个或者若干个窗口,每一个窗口都对应有一个Surface。有了这个Surface之后,应用程序就可以在...
Android 应用程序 框架 MVC设计非常好用
Android程序,获取GPS定位信息,google地图绘制坐标点
[14本经典Android开发教程]-4-Android应用程序开发36技 本书共分为4篇: ※ 第一篇:介绍应用框架概念、原理和特性。 ※ 第二篇:阐述应用框架之设计技巧。亦即,如何打造应用框架。 (注:如果你的职务是「使用」...
Android系统结构和SDK使用;Android SDK的开发环境;Android应用程序的概述和框架;Android应用程序示例;Android应用程序的内容;Android的UI系统实现;视图组(ViewGroup)和布局(Layout)的使用
用LogWriter将Android应用程序的日志信息写入文件,存放文件的路径和命名方式都可以修改的
《Android Studio应用程序设计》(第2版,课件只有一、二、三、四章的,各章节例题源代码齐全,word编辑可直接黏贴使用。
Android系统里面的应用程序进程有一个特点,那就是它们是被系统托管的。也就是说,系统根据需要来创建进程以及回收进程。进程创建发生在组件启动时,它们是由Zygote进程负责创建。Zygote进程是由系统中的第一个进程...
【Android】代码开启/关闭GPSDemo 相关文章:... 为了方便看效果,您可以在在onCreate中添加finish();方法,然后打开系统GPS设置页面再运行代码,这样就能看到GPS开关的变化了。
Android Gps日志记录程序源码.rar Android listview 滑动删除(具体效果360手机卫士后台通知).rar Android MP3播放器,带卡拉OK字幕.rar Android “遇见”android应用源码.rar Android 个人记账程序源码.rar Android...
利用c#和vs2010.net开发Android应用程序,连接SQL Server数据库进行数据操作 1、直接连接SQL Server 2、通过服务连接SQL Server
Android应用源码之获取Gps信息的程序源码.zip
android应用案例开发大全(第3版)源程序.rar android应用案例开发大全(第3版)源程序.rar