KitKat上的位置检测

时间:2014-11-01 09:45:11

标签: android location

到目前为止,当使用LocationClient获取用户的最后已知位置时,我没有遇到任何问题,例如在Jelly Bean上进行测试。

我有一个KitKat手机进行测试,我发现设置中有一个DEFAULT设置 - >位置,称为"仅限设备"它完全依靠GPS来启动,连接和获取位置。这需要A WHILE。此外,当我在室内时,它可能没有任何位置。

如果我转到设置,并切换到"高精度"我回到我的应用程序,BAM位置就在那里。

问题是:

如何检测KitKat中设置的三个位置设置中的哪一个并要求用户更改(或直接自行更改)

三个设置是:

- 仅限设备

- 电池保存模式

- 高精度

1 个答案:

答案 0 :(得分:1)

据我所知,您可以使用LocationManager类单独确定启用/禁用哪些服务。

locationManager = (LocationManager) getApplicationContext().getSystemService(LOCATION_SERVICE);
isGPSEnabled = locationManager
                .isProviderEnabled(LocationManager.GPS_PROVIDER);
isNetworkEnabled = locationManager
                .isProviderEnabled(LocationManager.NETWORK_PROVIDER);

所以你要做的就是确定哪些是启用的,并采取相应的行动。如果其中任何一个被禁用,您可以要求用户打开它们。

if(!isGPSEnabled) {
    startActivity(new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS));
}
if(!isNetworkEnabled) {
    startActivity(new Intent(Settings.ACTION_WIRELESS_SETTINGS));
}

编辑: 您可以使用LocationManager类来正确设置,然后使用LocationClient来实际收集位置信息。