如何像“快速设置”一样切换GPS状态?
我想在我的应用程序中切换GPS状态。我所知道的方法是修改设备的安全设置,如下面的代码如何像“快速设置”一样切换GPS状态?
Settings.Secure.putString(resolver, Settings.Secure.LOCATION_PROVIDERS_ALLOWED, newAllowedProviders);
然而,修改安全设置仅在全根设备可用。如果不是,它会抛出异常,即使我已经在AndroidManifest.xml
中添加了此权限。
java.lang.SecurityException: Permission denial: writing to secure settings requires android.permission.WRITE_SECURE_SETTINGS
最近,我发现一个开源应用程序“快速设置”是能够做到这一点的非全根设备上,但笔者没有公布这部分的代码。原因是他正在使用某种安卓漏洞,他不愿意释放它。
有没有人知道他是如何实现它的?
发布快速设置的方法与上面的方法相同(修改安全设置)。它的工作原理,但只在完全根植的设备。
但是,目前使用的快速设置的真实方法并未在它的源代码中发布,它可以在根和非根手机上工作。
快速设置的来源可用。您可能需要重新构建API级别6.我重新构建它7,并且gps切换不起作用。让我们知道你是否可以建立6并看到它在7或更高版本上工作。
感谢您的回复,发布快速设置的方法是我提到的方法(修改安全设置)。它的工作原理,但只在完全根植的设备。然而,目前使用的快速设置的真实方法并未在其源代码中发布,这可以在无根手机上工作。 – dong221 2011-03-12 16:36:01
我认为快速设置的作者使用2.0 SDK构建了应用程序,该应用程序允许相同的代码打开和关闭gps。我将它的源代码编译为2.1/2.2,并且gps切换不起作用。 目前,2.0/2.0.1 sdk已经过时,无法下载,所以我无法构建它。如果您碰巧拥有旧的sdk组件,请尝试使用它。否则,我们运气不好。 – KITT 2011-03-15 10:14:56
谢谢,我会试试看。 – dong221 2011-03-18 02:28:05
我认为用这样的漏洞利用系统安全性是违法的(更不用说Google很有可能在未来的Android版本中修补这些漏洞,破坏你的应用程序)。为什么您的应用需要在未经用户批准的情况下更改GPS设置? – 2011-03-03 19:01:41
我的应用程序只是一个自动配置文件应用程序。我想让用户自动更改他们想要的系统设置。我还已将安全写入权限添加到其中。 – dong221 2011-03-05 06:34:08
我认为这是一个非常难的问题......只有“快速设置”可以做到这一点,因为我知道。 – dong221 2011-03-05 06:34:59