기본적으로 BroadcastReceiver
에서 단일 업데이트를 수신하기를 원하며 어떤 이유로 모든 제공자가 내 액세스에서 비활성화되어 있습니다. 여기에 코드LocationManager GetProviders (true) 공급자를 반환하지 않습니다.
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));
}
은 내 로그 캣 나는 문제가 나는 BroadcastReceiver
에서이 모두를 호출하고 있다는 것을 추측하고
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에 액세스 할 수 있습니까?
모든 제공 업체가 활성화되었거나하지 않습니까? – ngesh
@sandy 그들은 모두 비활성화되어 있었고, 단순히 잊혀진 권한이었습니다. – MikeIsrael