0

我正在开发一个 android 应用程序,我需要知道 android 设备的位置。我尝试的所有方法都需要启用 GPS。如果未启用,我们可以通过打开设置意图来要求用户将其打开。

有没有办法通过代码启用它,甚至不让用户知道......并在应用程序完成其工作时将其关闭?

我正在开发的应用程序将记录设备的位置。它将在后台运行,并每 15 分钟记录一次位置。一直保持 GPS 开启会消耗大量电量。因此,我想在需要时打开它,并在完成时将其关闭,而无需询问用户。

4

3 回答 3

1

出于隐私原因,如果不植根设备,这将永远不可能。

未经同意,您无法获取用户的位置。

于 2013-03-17T17:52:24.133 回答
1

有没有办法通过代码启用它,甚至不让用户知道......并在应用程序完成其工作时将其关闭?

幸运的是,不,出于明显的隐私和安全原因。

因此,我想在需要时打开它,并在完成时将其关闭,而无需询问用户。

开启和关闭与启用和禁用不同。

仅仅因为用户允许启用GPS并不意味着它正在消耗电力。只有当应用程序请求位置数据时,GPS 无线电才会打开。因此,您无法启用GPS(只有用户可以),但如果启用了 GPS,您可以安排将其打开。当 GPS 打开时,用户仍会在状态栏中看到一个图标。

那么间谍应用程序是如何做到的呢?

他们要求用户启用 GPS。

于 2013-03-17T17:54:49.087 回答
1

要获得准确的位置,您需要启用 GPS。但是您可以使用NETWORK_PROVIDER,并获取纬度和经度。这不需要用户干预。但是,当然,它是一个大概的位置,但足以进行基于位置的搜索。

lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0,
            locationListener);
于 2013-03-17T18:04:38.050 回答