LocationManager getProviders (true) не возвращает поставщиков
Итак, в основном я хочу начать прослушивать одно обновление от BroadcastReceiver, и по какой-то причине все поставщики отключены от моего доступа. Вот фрагмент кода
LocationManager locationManager = (LocationManager)
context.getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
criteria.setPowerRequirement(Criteria.POWER_LOW);
String majorProvider = locationManager.getBestProvider(criteria, true);
Log.d("location test", "major provider " + majorProvider);
List<String> allProviders = locationManager.getAllProviders();
for(int i=0; i < allProviders.size();i++) {
Log.d("location test", "provider " + i + ": " + allProviders.get(i));
}
Log.d("location test", "enabled...");
allProviders = locationManager.getProviders(true);
for(int i=0; i < allProviders.size();i++) {
Log.d("location test", "enabled provider " + i + ": " + allProviders.get(i));
}
И мои результаты logcat
04-09 11:23:35.763: D/location test(32576): major provider null
04-09 11:23:35.763: D/location test(32576): provider 0: network
04-09 11:23:35.763: D/location test(32576): provider 1: passive
04-09 11:23:35.763: D/location test(32576): provider 2: gps
04-09 11:23:35.763: D/location test(32576): enabled...
Я предполагаю, что проблема в том, что я вызываю все это из
BroadcastReceiver, но я пытался передать его контекст откуда-то еще. Разве невозможно получить доступ к LocationManager из BroadcastReceiver? 1 ответ:
Вау, я чувствую себя такой идиоткой. Ну, ребята, это был просто вопрос разрешения. Если кто-то снова столкнется с этим, просто добавьте разрешения на использование в manifest
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
Comments