我在我的应用中使用位置服务,如下所示:
LocationManager locM = (LocationManager) getSystemService(LOCATION_SERVICE);
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_COARSE);
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
criteria.setCostAllowed(true);
criteria.setPowerRequirement(Criteria.POWER_HIGH);
criteria.setSpeedRequired(false);
String currentProvider = locM.getBestProvider(criteria, true);
Log.d("Location", "currentProvider: " + currentProvider);
Location currentLocation = locM.getLastKnownLocation(currentProvider);
if(currentLocation == null){
locM.requestLocationUpdates(currentProvider, 0, 0, locationListener);
}
我在Manifest.xml中添加了网络和位置的权限。
当我今天早些时候在我的Android手机中测试此代码时,此行String currentProvider = locM.getBestProvider(criteria, true);
始终返回null。经过一些谷歌搜索后,我发现这是由我的手机设置引起的。我应该打开设置 - > location->使用无线网络。
我很好奇,为什么其他应用程序(例如谷歌地图)即使我关闭它也可以正常工作。因为我之前从未修改过位置设置,而且我手机中使用位置服务的所有其他应用都运行良好。 有没有办法修改代码中的设置?