我最近将我的一个设备更新到Android 6.0(API 23),因此我无法在我的应用程序中获取位置信息。
很简单,问题是:
locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
for (String providerName : locationManager.getProviders(false)) {
if (locationManager.isProviderEnabled(providerName)) {
activeProviders.add(providerName);
try {
locationManager.requestLocationUpdates(providerName, LOCATION_UPDATE_DELAY_MS, LOCATION_THRESHOLD_METERS, this);
} catch (SecurityException e) {
// TODO: Service not available, Handle This..
Toast.makeText(context, "Location Disabled", Toast.LENGTH_SHORT).show();
}
}
}
应用程序确实会像往常一样请求位置权限。
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
这在Android 4.4 KitKat(Galaxy Nexus)上没有任何问题,但在android 6.0 Marshmallow(Nexus 5)上返回一个空的提供者数组。它之前也使用过运行Lollipop 5.1.1的相同Nexus 5设备。
我错过了一些明显的东西吗?