安卓如何启用和禁用GPS

6

可能重复问题:
像Tasker一样在程序中启用GPS

我是一个初学者的安卓开发者。

我想通过单击按钮启用和禁用GPS,而不运行此意图:

intente in = new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS);   

startActivity(in);

这将带我进入设置菜单。

是否有一种方法可以像Android的“电源控制”小部件那样启用或禁用GPS?

谢谢。

编辑:

我所说的小部件在Android系统(从1.6版本开始)中。 有一个应用程序(siriusapplications.com/powercontrolplus),可以实现我想做的事情,并扩展Android电源控制..我的问题是:这个人如何管理它? -

2个回答

3
我认为没有办法这样做。请参见此问题。您还可以在这里找到一个不错的例子。基本上,您需要测试 GPS 是否已启用,然后将用户导航到适当的设置页面。
您所提到的小部件可能直接访问 GPS 驱动程序。这意味着它只能在手头的设备(或单个设备系列)中工作。

我所说的小部件位于安卓系统中(版本为1.6及以上)。有一个应用程序(http://www.siriusapplications.com/powercontrolplus/)可以做到我想要的,并扩展了安卓电源控制。我的问题是:这个人是如何管理这个的? - mist3r0
由于小部件在Android系统中,实际上可以使用本地代码来控制GPS。至于应用程序,您试过了吗?它是否实际启用/禁用GPS或仅为您提供快捷方式?这将非常有趣。 - kgiannakakis
1
我发现这个软件(http://www.siriusapplications.com/powercontrolplus/)与Android系统的电源控制小部件非常相似。因此,有一个模式可以实现这一点!现在,也许我已经解决了我的问题,我写下了这段代码:boolean gpsStatus = locmanager.isProviderEnabled(LocationManager.GPS_PROVIDER);if(!gpsStatus){ Settings.Secure.putString(getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED, "network,gps"); } - mist3r0
执行此代码时,系统需要两种类型的权限,android.permission.WRITE_SECURE_SETTINGS和android.permission.WRITE_SETTINGS。但是,在我将这些权限放入清单文件后,我始终遇到以下异常:java.lang.SecurityException:拒绝许可:写入安全设置需要android.permission.WRITE_SECURE_SETTINGS。你能帮我吗? - mist3r0
@kgiannakakis -1 是因为这可以在2.2(sdk 8)之前完成。详情请参见像Tasker一样以编程方式启用GPS - Richard Le Mesurier

2

可以通过利用电源管理小部件中的漏洞来切换GPS。请参见此问题


+1,是的,这可以在2.2(sdk 8)之前完成。详情请参见像Tasker一样以编程方式启用GPS - Richard Le Mesurier

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接