似乎从Android操作系统版本4.1开始有一个新设置,允许谷歌应用程序使用用户位置。
我正在开发一个使用google maps api v2的应用程序,并通过使用以下行让我知道位置:
mMap.setMyLocationEnabled(true);
现在我想检查用户是否检查了位置&谷歌搜索设置屏幕。
如果启用了wifi和gps,没有问题,但我无法找到检查谷歌位置的方法。搜索已启用,直到现在我刚刚找到以下代码:
try {
int gEnable= settings.System.getInt(getActivity().getContentResolver(),Settings.ACTION_SEARCH_SETTINGS);
} catch (SettingNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
但它总是抛出异常。
非常感谢您阅读我的帖子。
修改
我会试着更清楚地解释一下...... 在我的应用程序中,我只想检查programmaticaly,如果"位置和谷歌搜索" (如下图所示)已经过检查。
非常感谢你阅读我的问题。
答案 0 :(得分:0)
我不完全理解你的问题,但考虑做这样的事情也可能是一种方式。
boolean enabled = locationManager
.isProviderEnabled(LocationManager.GPS_PROVIDER);
// Check if GPS is enabled, if not send user to GPS settings
if (!enabled) {
Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivityForResult(intent, 0);
}
除了LocationManager.GPS_PROVIDER,您还可以要求
LocationManager.PASSIVE_PROVIDER,它是“一个特殊的位置提供者,用于接收位置而不实际启动位置修复”或 LocationManager.NETWORK_PROVIDER,它使用网络位置。谷歌除了使用我认为的最后两个选项外没有做任何其他事情...... 我希望有帮助...