【发布时间】:2023-12-28 13:54:01
【问题描述】:
我有什么:目前我的应用正在通过 gps 提供位置。
我想要什么: Gps 在我退出应用程序后自动关闭。因为它一次又一次地告诉我位置看起来很奇怪,而且 gps 也消耗大量电池。
【问题讨论】:
-
好吧,我必须尝试一下。 . .谢谢
我有什么:目前我的应用正在通过 gps 提供位置。
我想要什么: Gps 在我退出应用程序后自动关闭。因为它一次又一次地告诉我位置看起来很奇怪,而且 gps 也消耗大量电池。
【问题讨论】:
查看上面的评论线程,似乎可以通过编程方式关闭 GPS(但只看到 12 个赞成票)
但如果您以编程方式从您的应用程序中关闭 GPS,如果其他应用程序使用 GPS 服务怎么办?
解决方案就像
打开android的Settings,然后告诉用户在退出应用程序时关闭GPS...
为此,您可以这样做:
Intent i = new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivity(i);
或
你可以试试
locationManager.removeUpdates(myLocationListener);
locationManager = null;
此应用的关闭 GPS,但仍可供其他应用使用。
【讨论】:
此代码可以改变您的 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);
【讨论】:
尽管 Rasel 发布的链接包含一些可能有效的代码,但您应该记住,该代码正在利用已修复的安全漏洞 (http://code.google.com/p/android/issues/detail?id=7890),因此在不久的将来应该不再有效。
【讨论】:
如果您想以编程方式启用 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)
【讨论】: