以编程方式关闭GPS

时间:2011-08-03 11:39:03

标签: android gps

我有什么:目前我的应用通过gps提供位置。

我想要什么: Gps在我退出应用程序后自动关闭。因为它一直在告诉我一次又一次的位置看起来很奇怪,而且gps消耗了很多电池。

4 个答案:

答案 0 :(得分:10)

查看上面的评论帖子似乎可以以编程方式关闭GPS(但只看到12个Upvotes)

但如果您以编程方式从应用程序关闭GPS,如果其他应用程序使用GPS服务会怎样?

解决方案 就像

打开android的Settings,然后告诉用户退出应用程序时关闭GPS ...

为此你可以这样做:

Intent i = new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivity(i);

您可以尝试

locationManager.removeUpdates(myLocationListener); 
locationManager = null;

此应用关闭gps,但仍可供其他应用使用。

答案 1 :(得分:2)

此代码可以改变你的gps。但是没有记录

 final Intent poke = new Intent();
            poke.setClassName("com.android.settings", "com.android.settings.widget.SettingsAppWidgetProvider");
            poke.addCategory(Intent.CATEGORY_ALTERNATIVE);
            poke.setData(Uri.parse("3")); 
            sendBroadcast(poke);

答案 2 :(得分:2)

即使Rasel发布的链接包含一些可能有效的代码,您应该记住,代码正在利用已经修复的安全漏洞(http://code.google.com/p/android/issues/detail?id=7890),因此不应该在不久的将来工作了。

答案 3 :(得分:2)

如果您想以编程方式启用GPS,请将此代码复制并粘贴到项目中,其工作正常。

      final Intent i = new Intent();
      i.setClassName("com.android.settings","com.android.settings.widget.SettingsAppWidgetProvider"); 
      i.addCategory(Intent.CATEGORY_ALTERNATIVE);
      i.setData(Uri.parse("3")); 
       sendBroadcast(i); //if you are in broad cast receiver activity then use context.sendBroadcast(i)