自动获取Android设备的位置

时间:2013-03-17 17:50:29

标签: android geolocation android-location

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

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

我正在处理的应用程序将记录设备的位置。它将在后台运行,每隔15分钟记录一次位置。始终启用GPS将消耗大量电力。所以我想在我需要的时候打开它,当我完成时将其关闭,而不是询问用户。

3 个答案:

答案 0 :(得分:1)

出于隐私原因,在没有设备生根的情况下永远不会

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

答案 1 :(得分:1)

  

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

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

  

所以我想在需要时将其打开,在完成后将其关闭,而不要询问用户。

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

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

  

间谍应用程序和所有人如何做到这一点?

他们要求用户启用GPS。

答案 2 :(得分:1)

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

lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0,
            locationListener);