我正在使用Google Play服务来获取用户的当前位置。基本上我使用http://www.androidhive.info/2015/02/android-location-api-using-google-play-services/处的代码来获取位置。所以这就是我的问题:
1)我可以毫无问题地获取Xperia Mini(运行ICS)上的当前用户位置。如果我没有启用GPS,我收到的位置(预期)并不准确,但我仍然会得到它。如果我启用GPS,我会(再次,预期)获得更准确的位置。
2)但是当我尝试在我的Zenfone C(运行KitKat)上运行我的应用程序时,如果我没有启用位置,我将永远不会获得任何位置。 getLastLocation和onLocationChanged将始终返回null。只有在我启用位置后,我才能获得该位置。但是在我禁用location并再次尝试getLastLocation之后,它将再次返回null。
在我的Zenfone C上发生的情况让我感到困惑,因为根据我的理解,即使我们没有启用位置/ GPS,我们仍然可以从移动网络或wifi三角测量获得当前位置,因为那是我的Xperia Mini发生了什么,我认为这应该是所有Android设备的标准?或者某些Android设备上的启用/启用位置是否有其他含义?也许在某些设备上,当位置关闭时,我们无法获得该位置。这里的任何人都可以对此有所了解吗?
由于
答案 0 :(得分:1)
一旦位置模式设置为关闭,设备就无法获取新位置,但是当位置模式设置为开启时,一个设备可能具有缓存位置。
需要启用网络位置(某些Android版本上的省电模式)才能从移动数据或WiFi获取位置。请注意,如果使用切换按钮,则会启用/禁用网络位置和GPS(高精度模式)。您可以使用子模式仅启用一种位置模式(仅限网络节电或仅限GPS)。
有关详细信息,请查看this answer中的屏幕截图。