到目前为止,当使用LocationClient获取用户的最后已知位置时,我没有遇到任何问题,例如在Jelly Bean上进行测试。
我有一个KitKat手机进行测试,我发现设置中有一个DEFAULT设置 - >位置,称为"仅限设备"它完全依靠GPS来启动,连接和获取位置。这需要A WHILE。此外,当我在室内时,它可能没有任何位置。
如果我转到设置,并切换到"高精度"我回到我的应用程序,BAM位置就在那里。
问题是:
如何检测KitKat中设置的三个位置设置中的哪一个并要求用户更改(或直接自行更改)
三个设置是:
- 仅限设备
- 电池保存模式
- 高精度
答案 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
来实际收集位置信息。